这里是详细说明: 数据框如:
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)
答案 0 :(得分:1)
我们可以使用Map
创建list
个vector
。假设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