r - r循环具有可变行的多个数据帧
问题描述
我担心有一个简单的解决方案:我有一组数据框,它们都包含相同的列。唯一的区别是每个数据帧中的行数不同。
假设 df1 有 10 行和 5 个变量,df2 有 23 行和 5 个变量,df3 有 7 行。
我要做的是为每个df的每一行分配另一个数据框dfX,根据df号和行号命名新的数据框。
dflist <- list(df1,df2,df3)
for(i in 1:length(dflist)){
for(j in 1:nrow(dflist[[i]]))
nam <- paste("bat",i,j,sep=".")
df <- dfX
assign(nam,df)
}
它似乎有效,但它只给了我三个名为 df.1.10、df.2.23 和 df.3.7 的数据框。
我希望它返回 df.1.1、df.1.2 等等
解决方案
看起来您在第二个 for 循环中缺少 {}。示例中也未定义 dfX。请参阅下面的更新代码。为了清楚起见,我添加了一些评论。
# Sample data
df1 <- as.data.frame(matrix(42,10,5))
df2 <- as.data.frame(matrix(42,23,5))
df3 <- as.data.frame(matrix(42,7,5))
dflist <- list(df1,df2,df3)
# Loop through data frames
for(i in 1:length(dflist)){
# Loop through rows
for(j in 1:nrow(dflist[[i]])) {
nam <- paste("bat",i,j,sep=".") # Create name
df <- dflist[[i]][1:j,] # Subset data frame
assign(nam,df) # Assign name
}
}
# List workspace content
ls()
希望这能让你更接近你所需要的!
推荐阅读
- vue.js - 在vuejs中使用reduce计算二维数组
- azure - Azure:如何通过函数 App 将自定义域添加到 Azure App?
- json - 使用 Angular 导入本地 json 文件
- typescript - TypeScript TupleIndexed 类型并对作为参数传入的数组强制只读
- javascript - 在 URL 中将 XML 数据作为查询字符串传递
- python - 用于合并两个已排序链表的返回头
- postgresql - 列引用“col_1”不明确 plpgsql
- c++ - 使用 qmake 构建二进制文件的多个版本
- gnu - 在 GNU Radio 中修改 OOT 块
- r - Ask user crendentials when running R in Terminal