我想分组/拆分年龄值

时间:2018-04-03 12:40:13

标签: r rstudio-server

我有一个数据集,其中心的猫身份证号码及其年龄。数据集如下所示:

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个星期,如果我听起来像菜鸟那么抱歉)

非常感谢能够提供帮助的任何人!

3 个答案:

答案 0 :(得分:2)

除上述答案外,还可以找到以下两种方法,

方法1

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

方法2

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

由于 巴拉吉

答案 1 :(得分:1)

如果您不想分割数据,可以使用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

答案 2 :(得分:0)

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)

我假设你的桌子只包含猫。