Я использую data.frame, который содержит много data.frames.Я пытаюсь получить доступ к этим sub-data.frames в цикле.В этих циклах имена sub-data.frames содержатся в строковой переменной.Поскольку это строка, я могу использовать нотацию [,] для извлечения данных из этих вложенных фреймов.например, X <- "sub.df"
, а затем df[42,X]
будет выводить то же самое, что и df$sub.df[42]
.
Я пытаюсь создать одну строку data.frame, чтобы заменить строку внутри sub-data.frames.(Я делаю это неоднократно, и поэтому мое имя sub-data.frame находится в строке).Однако у меня возникают проблемы при вставке этих новых данных в эти суб-data.frames.Вот MWE:
#Set up the data.frames and sub-data.frames
sub.frame <- data.frame(X=1:10,Y=11:20)
df <- data.frame(A=21:30)
df$Z <- sub.frame
Col.Var <- "Z"
#Create a row to insert
new.data.frame <- data.frame(X=40,Y=50)
#This works:
df$Z[3,] <- new.data.frame
#These don't (even though both sides of the assignment give the correct values/dimensions):
df[,Col.Var][6,] <- new.data.frame #Gives Warning and collapses df$Z to 1 dimension
df[7,Col.Var] <- new.data.frame #Gives Warning and only uses first value in both places
#This works, but is a work-around and feels very inelegant(!)
eval(parse(text=paste0("df$",Col.Var,"[8,] <- new.data.frame")))
Есть ли лучшие способы сделать этот вид вставки?Учитывая мой опыт работы с R, я чувствую , как будто это должно быть легко, но я не могу понять это.