r - 如何根据 R 中预先指定的列对数据框进行分组

标签 r dataframe

我有一个看起来像这样的数据:

 library(zoo)
 dt <- read.csv("http://dpaste.com/1612639/plain/",header=FALSE,fill=FALSE,na.strings = "")
 dt <- na.locf(dt)


> dt
   V1  V2                V3                V4       V5
1 FOO yyy Unigene126925_All Unigene137063_All 0.238087
2 FOO yyy Unigene126925_All  Unigene24551_All 0.374231
3 FOO yyy Unigene126925_All  Unigene31835_All 0.367897
4 BAR xxx Unigene126925_All Unigene165366_All 0.247844
5 BAR xxx Unigene126925_All Unigene111784_All 0.344493

我想做的是根据V1对它们进行分组,每组的内容是一个数据框,其值从上面的V3到V5。 它看起来像这样:

组 FOO

     V1               V2                V3             
1 Unigene126925_All Unigene137063_All 0.238087
2 Unigene126925_All  Unigene24551_All 0.374231
3 Unigene126925_All  Unigene31835_All 0.367897

组栏

   V1               V2                V3   
1 Unigene126925_All Unigene165366_All 0.247844
2 Unigene126925_All Unigene111784_All 0.344493

我如何在 R 中实现它? 稍后我将为每个组应用一些函数到它的数据框。

最佳答案

使用拆分:

> split(dt[, 3:5], dt$V1)
$BAR
                 V3                V4       V5
4 Unigene126925_All Unigene165366_All 0.247844
5 Unigene126925_All Unigene111784_All 0.344493

$FOO
                 V3                V4       V5
1 Unigene126925_All Unigene137063_All 0.238087
2 Unigene126925_All  Unigene24551_All 0.374231
3 Unigene126925_All  Unigene31835_All 0.367897

您现在可以在此列表上运行一些函数,并将结果与​​ unsplit 合并。

关于r - 如何根据 R 中预先指定的列对数据框进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21751045/

相关文章:

r - 如何使用 R 读取位于 Linux 服务器上的文件

r - 每个值的累积计数(重复)

python - 根据列的值从数据框中删除行

用于非零值计算的python pandas dataframe等效函数逻辑

python - 如何使用字典键和值重命名Pandas DataFrame中的列?

r - 如何使用 R 中的插入符号绘制多标签 SVM 问题的决策边界

list - 将列表转换为数据框的最有效方法是什么?

r - 将列添加到 Shiny 中的响应式(Reactive)数据框中并更新它们

python - Pandas Dataframe - 在特定行中选择具有特定值的列

r - 将输出文件从 for 循环发送到 R 中的新目录