如何从R中的data.frame列生成向量?

如何从R中的data.frame列生成向量?,r,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循环很容易。我正在努力寻找一种更有效的方法 这种转换很有用,因为如果您想得到列中每个元素的结果,许多方法f需要input=c(x1,x2)

以下是详细说明: 数据帧,如:

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循环很容易。我正在努力寻找一种更有效的方法

这种转换很有用,因为如果您想得到列中每个元素的结果,许多方法f需要input=c(x1,x2)而不是input=
您可以使用sapply/lappy(身高/体重,f)

我们可以使用
Map
创建
向量的
列表。假设OP需要一个
列表

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

df1$height\u weight我们可以使用
Map
创建
向量的
列表。假设OP需要一个
列表

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

df1$height\u weight事实上,我认为有另一种方法可以合乎逻辑地做到这一点
因为所有“应用族”函数都使用列而不是行

对data.frame的列进行转置 然后可以在转置的data.frame上使用lappy
把你的结果调回原处实际上我认为有另一种方法可以合乎逻辑地做到这一点 因为所有“应用族”函数都使用列而不是行

对data.frame的列进行转置 然后可以在转置的data.frame上使用lappy
把你的结果调回

尽我所能理解,我猜你在找这个

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

data$height\u weight据我所知,我猜你在找这个

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

data$height\u weight不清楚您想要实现什么。您显示的预期输出是三个向量,而不是一列。我想要一个以向量为元素的列(实际上,列的类型是列表)。我认为您高估了有用性,低估了相关的不便。有经验的R程序员会把这些列分开。我需要把它们放在一起,不是因为我过去经常这样做,也不是因为我喜欢那样做,只是因为结果需要到一个大包中的另一个大函数,它需要输入body_index=c(x1,x2),我不想修改那个大函数。我想你问错了问题。给我们函数,我们可以告诉您如何在不将数据修改为如此不寻常(和糟糕)的格式的情况下向其提供输入。不清楚您想要实现什么。您显示的预期输出是三个向量,而不是一列。我想要一个以向量为元素的列(实际上,列的类型是列表)。我认为您高估了有用性,低估了相关的不便。有经验的R程序员会把这些列分开。我需要把它们放在一起,不是因为我过去经常这样做,也不是因为我喜欢那样做,只是因为结果需要到一个大包中的另一个大函数,它需要输入body_index=c(x1,x2),我不想修改那个大函数。我想你问错了问题。给我们函数,我们可以告诉您如何在不修改数据的情况下为其提供输入格式。函数的酷之处:Map是它处理数据框的每一行而不是数据框的每一列。函数的酷之处:Map是它处理数据框的每一行而不是数据框的每一列。对不起,这不是我的意思对不起,这不是我的意思