R 列出另一个数据帧中所有发生的向量

R 列出另一个数据帧中所有发生的向量,r,vector,R,Vector,我正在尝试做一些类似的事情: 我有这个数据框 Name Distance James 2 James 1 Maria 5 Thomas 2 Thomas 1 James 4 如果有帮助的话,我还有一个包含所有名字的数据框 并检索3个单独的数据帧,如下所示: James 2 1 4 Thomas 2 1 Maria 5 请注意,我不想求和,只需获取值,列表中的名称要长得多,因此逐个进行不是最佳选择。我的建议是不要将结果存储在data.frame中,而是存储

我正在尝试做一些类似的事情: 我有这个数据框

Name   Distance  
James  2
James  1
Maria  5
Thomas 2
Thomas 1
James  4
如果有帮助的话,我还有一个包含所有名字的数据框

并检索3个单独的数据帧,如下所示:

   James  2 1 4
   Thomas 2 1
   Maria  5

请注意,我不想求和,只需获取值,列表中的名称要长得多,因此逐个进行不是最佳选择。

我的建议是不要将结果存储在
data.frame
中,而是存储在列表中,因为结果将具有不同的维度。您可以通过以下方式获得所需列表:

my_list = split(df$Distance,df$Name)
返回:

$`James`
[1] 2 1 4

$Maria
[1] 5

$Thomas
[1] 2 1
$`James`
[1] 7

$Maria
[1] 5

$Thomas
[1] 3
然后,例如,您可以将单个人员的结果作为

my_list[['James']]
> 2 1 4
或者得到每个人的总数

lapply(my_list,sum)
返回:

$`James`
[1] 2 1 4

$Maria
[1] 5

$Thomas
[1] 2 1
$`James`
[1] 7

$Maria
[1] 5

$Thomas
[1] 3

希望这有帮助

您指的是将数据帧从长格式转换为宽格式吗?“并检索3个单独的数据帧”,因此输出应为三个单独的
data.frame
s,每行一行?我很困惑,因为您的预期输出看起来像一个单独的
data.frame
split(df$Distance,df$Name)
不返回data.frame,但在这里似乎有意义。这有帮助吗?或者像这样的聚合(Distance~Name,df,paste0,collapse=“”)?我想要不同的数据。帧,因为它们将具有不同的维度@毛里塔尼亚说,这几乎是我想要的,但结果都在一个地方,我需要进一步治疗他们