我想 group/split 年龄值

I would like to group/split age values

我有一个数据集,其中包含猫在中心的 ID 号及其年龄。数据集如下所示:

ID Number   Animal Type          Age
 121012             Cat        0.002
 128129             Cat        1.000
 429202             Cat        0.920
 238232             Cat       15.000
 132265             Cat        0.050
 234235             Cat        9.000
 682892             Cat       16.000

一只小猫的年龄数值小于1,换句话说,小猫可以是任何非整数的数字。 同时,成年猫的年龄值是任意整数。

我需要拆分数据,或者更好的是将小猫种群与成年种群进行分组,但我不知道。

(我对此还是很陌生,只用了 4 周,如果我听起来像个菜鸟,请见谅)

非常感谢任何可以提供帮助的人!

df_split = split(df, df$Age < 1)

或者您可能想要创建一个列来说明猫是小猫还是成年猫:

df$type_of_cat <- ifelse(df$age < 1, "Kitten", "Adult")
df_split = split(df, df$type_of_cat)

我假设你的 table 只包含猫。

如果您不想拆分数据,可以使用 dplyr::group_by 来确保 data.frame.

的分组结构
library(tidyverse);
df %>%
    mutate(isKitten = Age < 1) %>%
    group_by(isKitten)

随后将在组级别执行任何进一步的数据操作。

例如,您可以计算每组的平均年龄:

df %>%
    mutate(isKitten = Age < 1) %>%
    group_by(isKitten) %>%
    summarise(meanAge = mean(Age))
## A tibble: 2 x 2
#  isKitten meanAge
#  <lgl>      <dbl>
#1 FALSE     10.2
#2 TRUE       0.324

除了上面的答案,再找下面两种方法,

方法一

df_kitten <- subset(df, Age <1)
df_adult <- subset(df, Age >= 1)

方法二

df_kitten <- df[df$Age < 1,]
df_adult <- df[df$Age >= 1,]

谢谢 巴拉吉