Создание нескольких фреймов данных в al oop в R - PullRequest
0 голосов
/ 09 февраля 2020

Я новичок в R и не знаю, как создать несколько фреймов данных в al oop. Например: у меня есть фрейм данных «Данные» с 20 строками и 4 столбцами:

Data <- data.frame(matrix(NA, nrow = 20, ncol = 4))
names(Data) <- c("A","B","C","D")

Я хочу выбрать строки данных, значения которых в столбце T являются ближайшими значениями к элементам вектора X.

X = c(X1,X2,X3,X4,X5) 

Наконец, я хочу назначить их отдельным фреймам данных с ассоциированным с ними именем X:

for(i in 1:length(X)){ 
data_X[i] <- data.frame(matrix(NA))  
data_X[i] <- subset(data2, 0 <= A-X[i] | A-X[i]< 0.000001 )
}

Спасибо!

1 Ответ

0 голосов
/ 10 февраля 2020

Поскольку вы не дали нам никаких цифр, трудно сказать точно, что вам нужно, чтобы l oop искал. Таким образом, вам нужно разобраться с этим самостоятельно, но вот базовый пример того, что вы могли бы сделать. Важная часть, которую, я думаю, вам не хватает, - это то, что вам нужно использовать assign для отправки созданных фреймов данных в вашу глобальную среду или куда вы хотите, чтобы они равнялись go. Paste0 - это удобный способ дать каждому свое имя. Обратите внимание, что некоторые фреймы данных будут пустыми. Возможно, стоит использовать оператор if, который пропускает assign в кадре данных if (nrow(data3)==0).

`Data <- data.frame(matrix(sample(1:10,80,replace = T), nrow = 20, ncol = 4))`
`names(Data) <- c("A","B","C","D")`
`X = c(1:10)` 


`for(i in 1:length(X)){ 
  data2 <- Data 
  data3 <- subset(data2, A == X[i])
  assign(paste0("SubsetData",i), data3, envir = .GlobalEnv)
}`
...