我有一个 Dataframe df
,其中已经有很多数据列。我有一个向量namevector
,其中充满了字符串。我需要将空列添加到df
中,并使用namevector
中的列的名称。
我尝试用这个for循环添加列,迭代namevector
中的每个字符串。
for (i in length(namevector)) {
df[, i] <- NA
}
但我留下了这个错误:[<-.data.frame
中的错误(*tmp*
,,i,值= NA):新列将在现有列之后留下孔洞
或者,我考虑过创建一个具有正确名称的空 Dataframe ,然后将两个 Dataframe cbind
-ing在一起,但不确定如何进行编码。
我该怎么解决这个问题呢?
6条答案
按热度按时间a0zr77ik1#
您的代码的问题在于以下行:
你需要问问自己:
length(namevector)
是什么?它是一个数字。所以你基本上是在说:或者更简单地说:
这就是您收到错误的原因。您需要的是:
或者更简单地说:
nue99wik2#
eqzww0vc3#
下面是我的作品
确保为新名称字符串添加
""
。gwo2fgha4#
我更喜欢基本的R解决方案,但这里有一个
tidyverse
解决方案。下面使用mutate
,但如果使用tibble::add_column
,语法是相同的:拼接运算符使用
setNames
中的名称-值对创建列。如果列表中已经有了名称-值对,那么只需执行以下操作:
如果每个列表元素的长度为1,则循环使用其值,否则,它需要具有与 Dataframe 相同的长度(例如
list(A = 1:150
)。lhcgjxsq5#
向 Dataframe 添加空列的另一种方法。
rnmwe5a26#
也许吧