У меня есть две данные dfName
& dfTest
.
> dfName <- c("Ball", "Cat", "Dog")
> dfName
[1] "Ball" "Cat" "Dog"
Я задаю имя первой строки dfTest
как "Apple",
> dfTest <- data.frame(t(1:3))
> rownames(dfTest) <- "Apple"
> dfTest
X1 X2 X3
Apple 1 2 3
Я хочучтобы добавить новые строки к dfTest
и присвоить имя его строкам, используя dfName
.
for(i in 1:3) {
dfTest <- rbind(dfTest, dfName[i] = data.frame(t(1:3)))
}
Но эта ошибка будет повторена,
Error: unexpected '=' in:
"for(i in 1:3) {
dfTest <- rbind(dfTest, dfName[i] ="
Поэтому я использую rownames
как обходной путь,
for(i in 1:3) {
dfTest <- rbind(dfTest, data.frame(t(1:3)))
rownames(dfTest)[i+1] <- dfName[i]
}
> dfTest
X1 X2 X3
Apple 1 2 3
Ball 1 2 3
Cat 1 2 3
Dog 1 2 3
Нет проблем, если это просто строковая переменная,
> varA <- "Elephant"
> dfTest <- rbind(dfTest, varA = data.frame(t(1:3)))
> dfTest <- rbind(dfTest, "Flower" = data.frame(t(1:3)))
Я знаю, что это просто еще одна строка / функция, но мне интересно, почему я не могу использовать dfName[i]
in rbind()
.
Edit: я не могу использовать rownames(dfTest) <- dfName
, потому что их количество строк не совпадает с моими фактическими данными.