根据R / python中的某些条件动态计数行

时间:2018-07-29 13:21:58

标签: python r dynamic

我有一个包含250万数据的数据集,其中包含以下示例数据。

id   status    count    webiste         source
1     True       0     www.test.com      Accurate
2     True       1     www.true.com      Need Test
3     False      2     Null              Accurate
4     False      100   Null              Need Test

id-唯一值

状态-正确/错误

计数-0-10000

网站-包含网址,否则为空

来源-准确/需要测试

其他列的范围从0-1000等等。

我想向用户显示数字列的滑块选项和其他列的下拉列表。

我要根据用户的说明选择数据子集的数量。

例如:将Status设置为True并包含网站和网站。

这些规格将由用户给出。这些需要在R或python中完成吗?

1 个答案:

答案 0 :(得分:2)

这是一个让您入门的示例。这将计算网站字段不是NA,状态为TRUE且行数在30到100之间的行数。

nrow(dataset[!is.na(dataset$website) & dataset$status == TRUE & dataset$count >= 30 & dataset$count <= 100, ])

请注意,每个条件实际上仅保留那些满足条件的行。但是请注意,如果R不确定行是否符合您的条件(因为它具有NA),则它将返回。例如。如果我们知道我们有一些状态值为NA(并且我们不想对它们进行计数),那么我们应该对代码进行如下修改:

nrow(dataset[!is.na(dataset$website) & (dataset$status == TRUE & !is.na(dataset$status)) & dataset$count >= 30 & dataset$count <= 100, ])

另一个提示:不要忘记最后一个方括号前的逗号

现在,要使其动态化(即接受用户输入),您可以像这样简单地将硬编码值替换为用户输入

user_selected_status <- TRUE
user_selected_min_count <- 30
user_selected_max_count <- 100

nrow(dataset[!is.na(dataset$website) & (dataset$status == user_selected_status & !is.na(dataset$status)) & dataset$count >= user_selected_min_count & dataset$count <= user_selected_max_count, ])