首页 > 解决方案 > 将行列值与 R 中的唯一级别匹配

问题描述

我对 R 相当陌生,正在尝试从一列中获取与另一列中唯一级别相对应的所有数据帧行。我的数据框名为df,有 2 列:preds其中group包含 20 个唯一级别。我正在尝试preds获取group.

数据框的示例如下:

   preds           group
1  18       (0,6.49e+03]
2  20       (0,6.49e+04]
3  49       (0,6.49e+02]
4  49       (0,6.49e+03]
5  20       (0,6.49e+04]

我的 for 循环尝试得到它如下:

for (i in unique(levels(df$group))){
  results <- df$preds[df['group'] == i]
  print(i)
  print(results)}

这应该打印出preds独特的关卡,看起来像这样:

(0,6.49e+03]
18, 49

(0,6.49e+04]
20, 20

(0,6.49e+02]
49

然而,这似乎每次只打印一个空向量。有人可以帮助我了解如何做到这一点,如果我什至以正确的方式尝试这样做吗?

谢谢

标签: rlist

解决方案


也许你可以试试tapply

with(df,tapply(preds,group,c))

或者split

with(df,split(preds,group))

这使

$`(0,6.49e+02]`
[1] 49

$`(0,6.49e+03]`
[1] 18 49

$`(0,6.49e+04]`
[1] 20 20

推荐阅读