我是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
如果没有循环,如何做到这一点?
谢谢!
答案 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")