如何从R中的data.frame列创建一个向量?

时间:2017-08-25 06:12:33

标签: r

这里是详细说明: 数据框如:

name height weight  
john   6     160    
mike   6.2   155    
jack   7     180

我想创建一个新列,它是最后两列的组合:

height_weight    
c(6,160)    
c(6.2,155)    
c(7,180)

我觉得for循环很容易。我想找到一种更有效的方式

这个变换很有用,因为很多方法需要输入= c(x1,x2)而不是input = ...,如果你想获得列的每个元素的结果 你可以使用sapply / lapply(height_weight,f)

3 个答案:

答案 0 :(得分:1)

我们可以使用Map创建listvector。假设OP需要list

df1$height_weight <- do.call(Map, c(f= c, unname(df1[-1])))
df1
#  name height weight height_weight
#1 john    6.0    160        6, 160
#2 mike    6.2    155    6.2, 155.0
#3 jack    7.0    180        7, 180

答案 1 :(得分:-1)

实际上我认为还有另一种方法可以在逻辑上做到这一点 因为所有应用族函数都使用列而不是行

对data.frame的列进行转置 那么你可以在转置的data.frame上使用lapply 并将结果转换回来

答案 2 :(得分:-1)

我能理解,猜猜你在寻找这个

data$height_weight <- paste(data$height,data$weight,sep = ",")
  name height weight     height_weight
1 john    6.0    160   6,160
2 mike    6.2    155 6.2,155
3 jack    7.0    180   7,180