一次在所有列中添加字符
Adding characters in all columns at once
我有一个包含 77 个变量的三个数据框。它们都是一样的,只是年份不同(2014、2015、2016)。
我想合并它们,但是所有的colnames完全一样,所以我不知道哪些值属于2014、2015或2015。
我想通过将年份添加到三个数据框中的所有列名来解决这个问题。
所以现在我有:
df_2014:
a|b|c
1|2|3
df_2015
a|b|c|
4|5|6|
df_2016
a|b|c|
7|8|9|
我想要:
df_2014:
a(2014)|b(2014)|c(2014)
1|2|3
df_2015:
a(2015)|b(2015)|c(2015)|
4|5|6|
df_2016:
a(2016)|b(2016)|c(2016)|
7|8|9|
有谁知道我是否可以使用循环或其他函数来做到这一点?否则我需要重命名 colnames 231 次 ;)
谢谢阿南德
首先将它们全部列在一个列表中:
l = list(df2014, df2015, df2016)
lapply(seq_along(l), function(x) {colnames(l[[x]]) = paste0(colnames(l[[x]]) ,"(", x+2013, ")");l[[x]]})
您可以使用 setNames。例如:
df_2017 <- data.frame(a = 1, b = 2, c = 3)
setNames(df_2017, paste("df_2017",colnames(df_2017), sep = ""))
Output:
df_2017a df_2017b df_2017c
1 1 2 3
我有一个包含 77 个变量的三个数据框。它们都是一样的,只是年份不同(2014、2015、2016)。
我想合并它们,但是所有的colnames完全一样,所以我不知道哪些值属于2014、2015或2015。
我想通过将年份添加到三个数据框中的所有列名来解决这个问题。
所以现在我有:
df_2014:
a|b|c
1|2|3
df_2015
a|b|c|
4|5|6|
df_2016
a|b|c|
7|8|9|
我想要:
df_2014:
a(2014)|b(2014)|c(2014)
1|2|3
df_2015:
a(2015)|b(2015)|c(2015)|
4|5|6|
df_2016:
a(2016)|b(2016)|c(2016)|
7|8|9|
有谁知道我是否可以使用循环或其他函数来做到这一点?否则我需要重命名 colnames 231 次 ;)
谢谢阿南德
首先将它们全部列在一个列表中:
l = list(df2014, df2015, df2016)
lapply(seq_along(l), function(x) {colnames(l[[x]]) = paste0(colnames(l[[x]]) ,"(", x+2013, ")");l[[x]]})
您可以使用 setNames。例如:
df_2017 <- data.frame(a = 1, b = 2, c = 3)
setNames(df_2017, paste("df_2017",colnames(df_2017), sep = ""))
Output:
df_2017a df_2017b df_2017c
1 1 2 3