У меня есть три разных фрейма данных, которые похожи в своих столбцах, например:
df1 df2 df3
Class 1 2 3 Class 1 2 3 Class 1 2 3
A 5 3 2 A 7 3 10 A 5 4 1
B 9 1 4 B 2 6 2 A 2 6 2
C 7 9 8 C 4 7 1 A 12 3 8
Я хотел бы перебрать три файла и выбрать данные из столбцов с похожим именем.Другими словами, я хочу повторять три раза и каждый раз выбирать данные столбца 1, затем столбца 2, а затем столбца 3 и объединять их в один фрейм данных.
Для этого я сделал следующее:
df1 <- read.csv(R1)
df2 <- read.csv(R2)
df3 <- read.csv(R3)
df <- data.frame(Class=character(), B1_1=integer(), B1_2=integer(), B1_3=integer(), stringsAsFactors=FALSE)
for(i in 1:3){
nam <- paste("X", i, sep = "") #here I want to call the column name such as X1, X2, and X3
df[seq_along(df1[nam]), ]$B1_1 <- df1[nam]
df[seq_along(df2[nam]), ]$B1_2 <- df2[nam]
df[seq_along(df3[nam]), ]$B1_3 <- df3[nam]
df$Class <- df1$Class
}
В этой строке df[seq_along(df1[nam]), ]$B1_1 <- df1[nam]
я следовал решению из this , но это приводит к следующей ошибке:
Error in `$<-.data.frame`(`*tmp*`, "B1_1", value = list(X1 = c(5L, 7L, :
replacement has 10 rows, data has 1
У вас есть идеи, как это решить?