【发布时间】:2020-04-26 09:42:32
【问题描述】:
假设我有一组数据框:df1, df2, d3, df4。我想对这些数据帧中的每一个应用某种行为。我不想重复复制代码,而是想通过某种 for 循环来做到这一点。例如,假设我想获取 df 并重新分配它,以便第一列是行名。我这样做的正常方式是:
df1_b <- df1[,-1]
rownames(df1_b) <- df1[,1]
我将如何对我拥有的所有四个数据框执行此操作。我想我需要以某种方式将数据帧组合成一个 set,然后执行类似
for (i in set) {
i+"_b" <- i[,-1]
rownames(i_b) <- i[,1]
}
我尝试使用 cbind 来做到这一点:
df_set <- c(df1, df2, df3, df4)
for (i in df_set) {
i+"_b" <- i[,-1]
rownames(i_b) <- i[,1]
}
但这当然不起作用(我很确定 R 不会像这样进行字符串连接)。
任何帮助将不胜感激!
【问题讨论】:
-
你是对的,R 没有那样连接,但你可以使用
paste(i, "b", sep = "_")。但是您最好制作一个数据框列表并使用lapply或purrr::map之类的东西对其进行迭代。已经有很多这样的帖子了