2017-08-25 103 views
1

这里是详细介绍: 一个数据帧,如:如何从R中的data.frame列中创建一个向量?

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)而不是输入= ...,如果要获得列的每个元素的结果 您可以使用sapply/lapply(height_weight,f)

+4

目前尚不清楚你想达到什么目的。您按预期显示的内容是三个向量而不是列。 – Roland

+0

我想要一个列(实际上列的类型是一个列表),其中有向量作为其元素 – cloudscomputes

+1

我认为你大大高估了有用性并低估了相关的不便。有经验的R程序员会将这些列分开。 – Roland

回答

1

我们可以使用Map创建listvector s。假设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

因此,功能很酷的东西:地图是它与数据帧的每一行,而不是每个数据帧的列 – cloudscomputes

-1

其实我觉得有另一种方式,因为所有申请家庭功能的工作与列未行

使列的转置做到这一点逻辑 data.frame 那么你可以在调换data.frame lapply使用和转你结果返回

-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 
+0

对不起,我不是这个意思 – cloudscomputes

相关问题