繁体   English   中英

在 R 中的循环中创建多个数据帧

[英]Creating multiple dataframes in a loop in R

我是 R 的新手,我不知道如何在循环中创建多个数据框。 例如:我有一个 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 )
}

谢谢!

由于您没有给我们任何数字,因此很难确切说明您需要 for 循环查找什么。 因此,您需要自己解决这个问题,但这里有一个基本示例,说明您可以做什么。 我认为您缺少的重要部分是您需要使用assign将创建的数据帧发送到您的全局环境或您希望它们去的任何地方。 Paste0是一种方便的方法,可以为它们各自命名。 请注意,某些数据框将为空。 使用if语句跳过数据帧if (nrow(data3)==0) assign可能是值得的。

`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)
}`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM