假设我们有数据框
attr1 | attr2
----- | -----
1 | 2
2 | 0
现在,对于数据框中的每一行,我想创建一个包含attr1
和attr2
的向量。此向量不应是字符串表示形式,而应是包含这些数字的实际向量。
期望的结果是:
attr1 | attr2 | vec |
----- | ----- | ------- |
1 | 2 | c(1, 2) |
2 | 0 | c(2, 0) |
如何在R?
中完成答案 0 :(得分:0)
df1 <- data.frame(attr1 = c(1,2),attr2 = c(2,0))
df1
# attr1 attr2
# 1 1 2
# 2 2 0
df1$vec <- noquote(paste("c(",paste(df1$attr1,df1$attr2,sep=","),")",sep=""))
df1
# attr1 attr2 vec
# 1 1 2 c(1,2)
# 2 2 0 c(2,0)
检查每列的类
sapply(df1,class)
# attr1 attr2 vec
# "numeric" "numeric" "noquote"
注意:vec
列实际上是一个字符串,因此只需使用noquote()
函数删除引号。
如果您只想将数字放在一起,仍然是字符向量,但列中没有c()
df1 <- data.frame(attr1 = c(1,2),attr2 = c(2,0))
df1
# attr1 attr2
# 1 1 2
# 2 2 0
df1$vec <- paste(df1$attr1,df1$attr2, sep=",")
df1
# attr1 attr2 vec
# 1 1 2 1,2
# 2 2 0 2,0
检查每列的类
sapply(df1,class)
# attr1 attr2 vec
# "numeric" "numeric" "character"