【发布时间】:2019-10-10 05:52:42
【问题描述】:
在尝试重命名列时,我尝试了两种方法。一种有效,另一种则出错:-
for(i in datalist)
{
print (i)
}
i=0:4
l1=list(1+5*i)
l1
l2=list(l1[[1]]+1)
l2
l3=list(l2[[1]]+1)
l3
l4=list(l3[[1]]+1)
l4
l5=list(l4[[1]]+1)
l5
df<-data.frame(a=l1,b=l2,c=l3,d=l4,e=l5)
df
for(i in 1:ncol(df))#Approach 1 which worked out successfully
colnames(df)[i]=paste(c("x"),i,sep="")
for(i in df)#Approach 2 which threw an error
{
colnames(df)[i]=paste(c("x"),i,sep="")
}
The correct output from approach 1-
x1 x2 x3 x4 x5
1 1 2 3 4 5
2 6 7 8 9 10
3 11 12 13 14 15
4 16 17 18 19 20
5 21 22 23 24 25
方法 2 的错误 - 名称错误(x)
【问题讨论】:
-
为什么你需要一个循环呢?可以直接
names(df) <- paste0("x", seq_along(df))