R 为数据帧中的每一行创建属性向量

R 为数据帧中的每一行创建属性向量,r,vector,dataframe,attributes,row,R,Vector,Dataframe,Attributes,Row,假设我们有数据帧 attr1 | attr2 ----- | ----- 1 | 2 2 | 0 现在,对于数据帧中的每一行,我想创建一个包含attr1和attr2的向量。该向量不应该是字符串表示,而是包含这些数字的实际向量 预期的结果是: attr1 | attr2 | vec | ----- | ----- | ------- | 1 | 2 | c(1, 2) | 2 | 0 | c(2, 0) | 如何在R中实现这一点

假设我们有数据帧

attr1 | attr2
----- | -----
  1   |   2
  2   |   0
现在,对于数据帧中的每一行,我想创建一个包含
attr1
attr2
的向量。该向量不应该是字符串表示,而是包含这些数字的实际向量

预期的结果是:

attr1 | attr2 |   vec   |
----- | ----- | ------- | 
  1   |   2   | c(1, 2) |
  2   |   0   | c(2, 0) |
如何在R中实现这一点

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)
注意:
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

如果您需要字符串元素,请使用
paste
df1$vec。我希望在解决方案中包含attr1和attr2,因为每一行都包含其他“不相关”的数据(不在此简化示例中)。很抱歉,我不希望将它们作为字符串,我希望它们作为实际的向量。
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"