我是新的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有什么不需要循环的方法吗?
谢谢!
发布于 2018-06-06 16:56:46
查看粘贴功能。您将希望通过在每个列名的前四个字符上选择,去掉每个列名中的下划线。然后你会想粘贴"_A“在1,4,7,.列。然后粘贴"_B“在2,5,8,.列。然后粘贴"_C“在第3,6,9,.列。您可以使用索引选择要使用的列,并且可以将其设置为从值开始,滞后为3。
colnames(dataframe) <- paste(colnames(dataframe)[indices],"text here")发布于 2018-06-07 01:17:42
这是一种方法。
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"在你的例子中,x = colnames(df)。
https://stackoverflow.com/questions/50725269
复制相似问题