【问题标题】:List vector with all the occurences from another dataframe [duplicate]列出来自另一个数据帧的所有出现的向量[重复]
【发布时间】:2023-03-17 09:07:02
【问题描述】:

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

Name   Distance  
James  2
James  1
Maria  5
Thomas 2
Thomas 1
James  4

如果有帮助,我也有包含所有名称的数据框。

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

   James  2 1 4
   Thomas 2 1
   Maria  5

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

【问题讨论】:

  • 你指的是数据帧从长格式到宽格式的转换吗?
  • “并检索 3 个单独的数据帧” 所以输出应该是三个 单独的 data.frames,每行一行?我很困惑,因为您的预期输出看起来像单个 data.frame
  • split(df$Distance,df$Name) 不返回 data.frame 但在这里似乎有意义。这有帮助吗?
  • 或者类似aggregate(Distance ~ Name, df, paste0, collapse = " ")
  • 我想要不同的data.frames,因为它们会有不同的维度...... @MauritsEvers 这几乎是我想要的,但结果都在一个地方,我需要进一步对待它们跨度>

标签: r vector


【解决方案1】:

我的建议是不要将结果存储在 data.frame 中,而是存储在列表中,因为结果会有不同的维度。您可以使用

获得所需的列表
my_list = split(df$Distance,df$Name)

返回:

$`James`
[1] 2 1 4

$Maria
[1] 5

$Thomas
[1] 2 1

那么例如,你可以得到一个人的结果为

my_list[['James']]
> 2 1 4

或得到每个人的总和

lapply(my_list,sum)

返回:

$`James`
[1] 7

$Maria
[1] 5

$Thomas
[1] 3

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2020-10-12
    • 1970-01-01
    • 2016-07-05
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多