我担心有一个简单的解决方案: 我有一组数据框,它们都包含相同的列。唯一的区别是每个数据帧中的行数都不同。
说df1有10行和5个变量,df2有23行和5个变量,df3有7行。
我要做的是将另一个数据帧dfX分配给每个df的每一行,并根据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等
答案 0 :(得分:0)
似乎第二个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()
希望这能使您更接近所需!!