Как связать символьные векторы различной длины в кадре данных? - PullRequest
0 голосов
/ 17 октября 2019

Я хочу связать выводы из цикла в фрейм данных.

Выводы выглядят так:

> dput(A)
c("u1", "u52", "u190", "u151", "u127", "u131", "u83", "u49", 
"u27", "u186", "u154", "u132")
> dput(B)
c("u2", "u42", "u49", "u132", "u27", "u52", "u48", "u53", "u131", 
"u83", "u54") 

Я надеюсь связать A и B в кадр данных, Aи B как два ряда. Однако, A и B имеют разную длину, я не хочу, чтобы R перерабатывал значения.

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Если вы не хотите перерабатывать, вы должны добавить пропущенные значения, чтобы расширить более короткий вектор:

d <- length(A) - length(B)
if(d > 0) B <- c(B, rep(NA, d))
if(d < 0) A <- c(A, rep(NA, abs(d)))
(AB <- rbind(A, B))
#   [,1] [,2]  [,3]   [,4]   [,5]   [,6]   [,7]  [,8]  [,9]   [,10]  [,11]  [,12] 
# A "u1" "u52" "u190" "u151" "u127" "u131" "u83" "u49" "u27"  "u186" "u154" "u132"
# B "u2" "u42" "u49"  "u132" "u27"  "u52"  "u48" "u53" "u131" "u83"  "u54"  NA    
0 голосов
/ 17 октября 2019

Вы можете использовать rbind () для этого:

AB <- rbind(A, B)

Однако, поскольку A и B не имеют одинаковую длину, R начинает перерабатывать. Смотри здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...