Jak naprawić: liczba wierszy w wyniku nie jest wielokrotnością długości wektora (arg 1)
Komunikat ostrzegawczy, który możesz napotkać podczas korzystania z języka R, to:
Warning message: In cbind(A, B, C): number of rows of result is not a multiple of vector length (arg 1)
To ostrzeżenie zwykle pojawia się, gdy próbujesz użyć funkcji cbind() do powiązania kolumn wektorów o różnych długościach.
Należy zauważyć, że ten komunikat jest po prostu ostrzeżeniem i Twój kod będzie nadal działał, ale uzyskane wyniki mogą różnić się od oczekiwanych.
Poniższy przykład pokazuje, jak w praktyce uniknąć tego ostrzeżenia.
Jak odtworzyć ostrzeżenie
Załóżmy, że używamy funkcji cbind() do połączenia trzech wektorów w kolumny w ramce danych:
#define three vectors with different lengths
A = c(4, 2, 3, 6)
B = c(9, 1, 8, 7, 0, 7)
C = c(3, 5, 3, 3, 6, 4)
#column bind three vectors into data frame
df <- cbind(A, B, C)
#view data frame
df
Warning message:
In cbind(A, B, C):
number of rows of result is not a multiple of vector length (arg 1)
ABC
[1,] 4 9 3
[2,] 2 1 5
[3,] 3 8 3
[4,] 6 7 3
[5,] 4 0 6
[6,] 2 7 4
Funkcja cbind działa ze wszystkimi trzema wektorami, ale należy pamiętać, że wartości pierwszego wektora po prostu powtarzają się w kółko.
Nazywa się to „recyklingiem” w języku R.
Jak uniknąć ostrzeżenia
Aby całkowicie uniknąć tego ostrzeżenia, musimy upewnić się, że długość każdego z wektorów, których używamy, jest taka sama.
Jednym ze sposobów osiągnięcia tego jest uzupełnienie brakujących wartości w najkrótszym wektorze wartościami NA w następujący sposób:
#calculate max length of vectors
max_length <- max(length(A), length(B), length(C))
#set length of each vector equal to max length
length(A) <- max_length
length(B) <- max_length
length(C) <- max_length
#cbind the three vectors together into a data frame
df <- cbind(A, B, C)
#view data frame
df
ABC
[1,] 4 9 3
[2,] 2 1 5
[3,] 3 8 3
[4,] 6 7 3
[5,] NA 0 6
[6,] NA 7 4
Zauważ, że tym razem nie otrzymujemy żadnych komunikatów ostrzegawczych, a krótkie wartości wektorów są po prostu uzupełniane wartościami NA, aby mieć pewność, że każdy z trzech użytych przez nas wektorów ma równą długość.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w R:
Jak naprawić w R: argumenty obejmują różną liczbę linii
Jak naprawić w R: błąd w wyborze nieużywanych argumentów
Jak naprawić w R: wymiana ma zerową długość