大佬教程收集整理的这篇文章主要介绍了R:根据行数据过滤,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个这样的数据框-
df <- structure(List(category = c("A","A","B","C","D","D"),Subcategory = c("A_1","A_2","A_3","B_1","B_2","C_1","C_2","D_3","D_4"),Option = c("Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9")),row.names = c(NA,-9L),class = c("tbl_df","tbl","data.frame"))
df
的结果:
category Subcategory Option
1 A A_1 Q1
2 A A_2 Q2
3 A A_3 Q3
4 B B_1 Q4
5 B B_2 Q5
6 C C_1 Q6
7 C C_2 Q7
8 D D_3 Q8
9 D D_4 Q9
我希望输出这样的数据基于 category
进行过滤。就像当我选择 "A"
时,输出应该是:
A_1 A2, A_3.
当我选择 A_1
时,我得到 Q1
。
随后适用于所有类别。
不确定我是否正确理解您的应用程序,但使用 dplyr 可能是您要查找的内容:
library(dplyr)
df %>%
filter(Category == 'A') %>%
pull(var = SubCategory)
df %>%
filter(SubCategory == 'A_1') %>%
pull(var = Option)
我创建了以下数据以供探索。
df <- data.frame(
Category = c(rep('A',3),rep('B',2),rep('C',rep('D',2)),stringsAsFactors = FALSE
) %>%
group_by(Category) %>%
mutate(SubCategory = paste0(Category,'_',row_number())) %>%
ungroup() %>%
mutate(Option = paste0('Q',row_number()))
编辑
您可以创建一个函数,它可以执行我理解您感兴趣的操作。以下是一种快速而肮脏的方法。您可能会找到更优雅或更适合您需求的东西。
希望它有助于为您指明正确的方向。
showQuestions <- function(df,userCategory) {
subcategories <- df %>%
filter(category == userCategory) %>%
pull(var = subCategory)
print(paste0('Showing sub categories for ',userCategory,': '))
if (length(subcategories) == 0) {
print('No sub categories for this category')
} else {
for (sc in subcategories) {
print(paste0('Showing questions for sub category ',sc,': '))
questions <- df %>%
filter(subCategory == sc) %>%
pull(var = Option)
if (length(questions) == 0) {
print('No questions for this subcategory')
} else {
for (q in questions) {
print(q)
}
}
}
}
}
# Try out e.g.
showQuestions(df,'A')
showQuestions(df,'E')
,
根据需要使用 filter
(# 可选行)
library(dplyr)
df1 <- df %>%
# filter(Category == "A")
filter(Category == "A",Subcategory == "A_1")
数据:
df <- tribble(
~Category,~Subcategory,~Option,"A","A_1","Q1","A_2","Q2","A_3","Q3","B","B_1","Q4","B_2","Q5","C","C_1","Q6","Q7","D","D_3","Q8","D_4","Q9")
以上是大佬教程为你收集整理的R:根据行数据过滤全部内容,希望文章能够帮你解决R:根据行数据过滤所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。