Как создать параметр, используя $ для выбора из фрейма данных - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть три разных фрейма данных, которые похожи в своих столбцах, например:

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 

У вас есть идеи, как это решить?

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