我有一个数据集,其中心的猫身份证号码及其年龄。数据集如下所示:
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个星期,如果我听起来像菜鸟那么抱歉)
非常感谢能够提供帮助的任何人!
答案 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)
我假设你的桌子只包含猫。