动态重命名列R.

时间:2018-06-06 16:28:07

标签: r dataframe rename

我是R(SAS程序员)的新手,想要退出"循环"心态。

假设我在data.frame中有以下列:

1999, 1999_1, 1999_2, 2000, 2000_1, 2001_2, 2002, 2000_1, etc 

我试图做的是编写一个循环的函数,并将其重命名为:

1999_A, 1999_B, 1999_C, 2000_A, etc

如果没有循环,如何做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:1)

这是一种方法。

dst->sin_family = 0

在您的情况下library("gsubfn") x<-c("1999","1999_1","1999_2","2000","2000_1","2000_2") x<-paste(x,"_",sep="") x [1] "1999_" "1999_1_" "1999_2_" "2000_" "2000_1_" "2000_2_" find_replace<-list("_" = "_A", "_1_" = "_B", "_2_" = "_C") gsubfn(paste(names(find_replace),collapse="|"),find_replace,x) [1] "1999_A" "1999_B" "1999_C" "2000_A" "2000_B" "2000_C"

答案 1 :(得分:0)

查看粘贴功能。您需要通过选择每个列名称的前四个字符,从每个列名称中删除下划线。然后你会想要粘贴&#34; _A&#34;在1日,4日,7日......列。然后粘贴&#34; _B&#34;在2日,5日,8日......列。然后粘贴&#34; _C&#34;在3日,6日,9日......列。您可以使用索引选择所需的列,并且可以将其设置为从值开始并且滞后为3.

colnames(dataframe) <- paste(colnames(dataframe)[indices],"text here")