Jestem zainteresowany identyfikacji skalary numerycznych jak:Jak sprawdzić skalar w R?
doub <- 3.14
intg <- 8L
wiem, że są one traktowane jako długość jednego wektorów. Tak więc dla każdego obiektu R x
jest właściwy sposób sprawdzenia, czy x
jest skalarem? length(x) == 1
samo w sobie nie jest wystarczające, ponieważ zwraca wartość true, gdy zwraca false, dla ramki danych z jedną kolumną lub listy z jednym elementem.
Czy istnieje powód, dla którego nie ma takiej funkcji is.scalar
zaimplementowanej w bazie R
? Z jakiegoś powodu dwa udało mi się znaleźć w innych funkcji fail dla przypadku ramki danych wspomniano wcześniej, są to:
assertthat::is.scalar(data.frame(a = 1:2))
lambda.tools::is.scalar(data.frame(a = 1:2))
Dlaczego są wyniki tych dwóch wywołań funkcji różni się od mojego zrozumienia (i definicji), w jaki sposób is.scalar
funkcja powinna działać?
Prawdopodobnie chcesz 'is.atomic' zamiast' is.vector'. –
jaka jest różnica między tymi dwoma? – Alex
Zobacz '? Is.atomic':" Powszechnie nazywa się typy atomowe "wektory atomowe ', ale zauważ, że' jest.vector' nakłada dodatkowe ograniczenia: obiekt może być atomowy, ale nie wektorowy (w tym sensie). " – MichaelChirico