我有一个名为“target”的df,列名为V1:V200。我想用名为“名称源”的df中存储在名为V2的列中的字符串替换这些列名。
我转换了“nameSource”,使用:
> wideNameSource<-as.data.frame(t(nameSource))
在接下来的步骤中,我从“wideNameSource”中删除了V1并创建了一个名为“JustNames”的新df。 (V1是数值列,值为1:200)。这产生了一个带有单个列的df,其中包含我想用作列名的字符串。这些顺序与我想将它们应用到我的“目标”df的顺序相同。
> JustNames<-subset(wideNameSource[2,])
然后我尝试使用以下方法将“JustNames”df中的值绑定到“target”df的顶部:
> targetWithColNames<-rbind(JustNames,target)
但是我得到了一系列警告信息,如下所示:
1: In `[<-.factor`(`*tmp*`, ri, value = c(0.35717, 0.82226, ... :
invalid factor level, NA generated
并且targetWithColNames df中的所有(数字)数据显示为NA。
将列名从“nameSource”变为“target”的最简单方法是什么?
答案 0 :(得分:1)
使用您的两个数据框target
和nameSource
:
colnames(target) <- nameSource$V1