【发布时间】:2020-11-24 23:08:33
【问题描述】:
我需要通过为每列的名称添加相同的后缀来重命名 R 中的几列。我可以通过每次复制重命名函数并替换变量名来做到这一点,但我想使用更优雅的解决方案。
此外,我正在为三个不同的数据框执行此操作,这些数据框都具有我需要重命名的相同列,因此这使我的代码更长。理想情况下,我会将所有这些都放在一个简短的 for 循环或类似的东西中。这是我所拥有的:
# data frames df1, df2, df3, columns a, b, c, and d:
df1 <- rename(df1, "a.df1" = a)
df1 <- rename(df1, "b.df1" = b)
df1 <- rename(df1, "c.df1" = c)
df1 <- rename(df1, "d.df1" = d)
df2 <- rename(df2, "a.df2" = a)
df2 <- rename(df2, "b.df2" = b)
df2 <- rename(df2, "c.df2" = c)
df2 <- rename(df2, "d.df2" = d)
df3 <- rename(df3, "a.df3" = a)
df3 <- rename(df3, "b.df3" = b)
df3 <- rename(df3, "c.df3" = c)
df3 <- rename(df3, "d.df3" = d)
这可以重命名我想要的列,但我希望它看起来更像:
for (i in list(df1, df2, df3)) {
for (j in c("a", "b", "c", "d")) {
rename(i, "j.i" = j)
}
}
我已经尝试了这个循环的几个版本,但无法让它工作。谁有解决办法?
【问题讨论】:
-
请添加
df1或dput(df1)以重现您的问题并为您提供帮助!