R 使用向量在数据帧中创建空列
我目前有一个整数向量R 使用向量在数据帧中创建空列,r,R,我目前有一个整数向量exampleVector,和一个数据框exampleDF,我想将exampleVector的每个元素添加为数据框exampleDF中的一个新列,其元素为NA。为了举例说明,我目前有: exampleVector <- 1:6 exampleDF <- data.frame(First=1:4, Second=4:7,Third=7:10) exampleDF First Second Third 1 1 4 7 2
exampleVector
,和一个数据框exampleDF
,我想将exampleVector
的每个元素添加为数据框exampleDF
中的一个新列,其元素为NA。为了举例说明,我目前有:
exampleVector <- 1:6
exampleDF <- data.frame(First=1:4, Second=4:7,Third=7:10)
exampleDF
First Second Third
1 1 4 7
2 2 5 8
3 3 6 9
4 4 7 10
但我需要更灵活的东西。我在网上找到的所有东西都是关于在多个数据帧中添加一列,为此,他们建议mapply
和cbind
如果我在这里遗漏了一些明显的东西,我深表歉意-我对R语言非常陌生,如果可能的话,我尝试在不使用
for
循环的情况下完成这项工作,因为最近的交互让我相信这大部分被认为是R脚本中的黑客行为,因为应用函数通常已经足够了 因为您的exampleVector
是数字,所以应该将其转换为
当您将其输入到代码中时。否则就要失败了
解释为基于索引的选择
exampleVector <- 1:6
exampleDF <- data.frame(First=1:4, Second=4:7,Third=7:10)
exampleDF[as.character(exampleVector)] <- NA_character_
exampleVector您能解释一下灵活是什么意思吗?因为上一个示例不需要显式for循环,所以这是否足够灵活?exampleDF[as.character(exampleVector)]如何exampleDF[c(“1”、“2”、“3”、“4”、“5”、“6”)]@rawr他的exampleVector是整型的。他在OP中一个接一个地将数字作为字符输入。最后一句话只需简短的注释:*apply
函数是for
循环的包装器;对于
循环,它们比更紧凑,更不容易出错,但通常不会更快。的确,在R中通常应该避免for
循环,但目标应该是利用R的矢量化功能,而不是使用apply
而不是for
。更多信息。我们开始了-我正在尝试exampleDF[exampleVector]
exampleDF$"1" <- as.character(NA)
exampleDF[["1"]] <- as.character(NA)
exampleDF[c("1","2","3","4","5","6")] <- as.character(NA)
exampleVector <- 1:6
exampleDF <- data.frame(First=1:4, Second=4:7,Third=7:10)
exampleDF[as.character(exampleVector)] <- NA_character_