Я надеюсь, что кто-то может мне помочь, я застрял в этом какое-то время, хотя это не так сложно решить.
У меня возникли проблемы с копированием и вставкой значений из фрейма данных в другой в цикле создания фрейма данных.
Я использую строковые значения, потому что мне нужно создать много фреймов данных.
Проблема возникает в последней строке set(get(paste0(letters[i],"_id")), j = 1L, value = Values_df[,i])
, это копирование и вставка последнего столбца Values_df[C]
в первый столбец A_id
и B_id
.
Вместо этого я хочу, чтобы соответствующие значения их столбцов во фрейме данных Values_df
были скопированы в первые столбцы фреймов данных "id
".
Пример игрушки:
rm(list = ls())
farms<-c("farm1","farm2","farm3","farm4")
qys<-expand.grid(c("Q1","Q2","Q3","Q4"),sprintf("Y%s", seq(1:10)))
qys<-paste(qys$Var2,qys$Var1)
basedata<-data.frame(matrix(NA,nrow=length(farms),ncol=length(qys)))
row.names(basedata)<-farms
colnames(basedata)<-qys
letters<-c("A","B","C")
Values_df<-data.frame(matrix(rexp(12, rate=.1), ncol=length(letters), nrow=length(farms)))
colnames(Values_df)<-letters
rownames(Values_df)<-farms
library(data.table)
for (i in 1:length(letters)){
assign(paste0(letters[i],"_id"),basedata)
set(get(paste0(letters[i],"_id")), j = 1L, value = Values_df[,i]) #PROBLEM
}
Желаемый результат:
A_id[,1]<-Values_df[,1]
B_id[,1]<-Values_df[,2]
C_id[,1]<-Values_df[,3]
но я получаю:
A_id[,1]<-Values_df[,3]
B_id[,1]<-Values_df[,3]
C_id[,1]<-Values_df[,3]