在R中,可以使用以下方法定位和删除分组ID的奇数行:
library(dplyr)
# 创建一个示例数据框
df <- data.frame(ID = rep(1:3, each = 4),
Value = 1:12)
# 使用group_by函数按ID分组
df_grouped <- df %>% group_by(ID)
# 使用filter函数筛选出奇数行
df_filtered <- df_grouped %>% filter(row_number() %% 2 == 1)
# 查看结果
df_filtered
在上述代码中,首先使用group_by
函数按照ID进行分组,然后使用filter
函数筛选出奇数行,row_number()
函数用于获取行号,%%
运算符用于判断是否为奇数行。
# 创建一个示例数据框
df <- data.frame(ID = rep(1:3, each = 4),
Value = 1:12)
# 使用split函数按ID分组
df_grouped <- split(df, df$ID)
# 删除奇数行
df_filtered <- lapply(df_grouped, function(x) x[seq(1, nrow(x), 2), ])
# 合并结果
df_result <- do.call(rbind, df_filtered)
# 查看结果
df_result
在上述代码中,首先使用split
函数按照ID将数据框分组,然后使用lapply
函数对每个分组进行操作,seq(1, nrow(x), 2)
用于获取奇数行的索引,最后使用do.call
和rbind
函数将结果合并。
以上两种方法都可以定位和删除R中分组ID的奇数行。
领取专属 10元无门槛券
手把手带您无忧上云