r - 使用 r 对每一行进行条件计数
问题描述
我尝试了所有解决方案,但我的问题仍然存在。我有一个很大的 df (20rows*400cols) - 对于每一行,我想计算有多少列的值超过 16。
第一个列是因子,其余列是整数。
我的df:
col1 col2 col3 col4
abc 2 16 17
def 4 2 4
geh 50 60 73
期望的输出应该是:
col1 col2 col3 col4 count
abc 2 16 17 1
def 4 2 4 0
geh 50 60 73 3
我试过了df$morethan16 <- rowSums(df[,-1] > 16)
,但后来我进入NA
了count
专栏。
解决方案
只要有元素,我们可能需要na.rm
将NA
元素作为>/</==
返回来处理NA
NA
df$morethan16 <- rowSums(df[,-1] > 16, na.rm = TRUE)
如果我们仍然得到NA
,请检查class
列的。上面的代码仅在列是numeric
. 使用(基于列的值)numeric
自动转换为类type.convert
df <- type.convert(df, as.is = TRUE)
检查str
结构
str(df)
如果仍然不是numeric
,则该列中的某些值可能是character
阻止其转换为的元素numeric
。强制列numeric
与as.numeric
。如果这些是factor
列,as.character
请先执行
df[-1] <- lapply(df[-1], function(x) as.numeric(as.character(x)))
推荐阅读
- php - 使用 PhpSpreadSheet 写入 excel 文件非常慢
- java - 尽管变量的类型被声明为双精度,为什么 java 会给出一个 int 太大的错误?
- abap - OpenSQL 语法 CASE 语句中的 WHERE 条件
- java - 查找在数据库中如何工作?
- selenium - 硒 - findElement
- php - (PHP/MySQL)如何将新地址设置为“新”默认值并取消设置前一个地址?
- http - Ballerina:在启动入站响应之前触发空闲超时
- mysql - MySQl:如何分组('年')日期格式的列,忽略月份和日期
- ios - 项目选择器未在 xcode 中显示
- python - Python 正则表达式不匹配“,”或字符串结尾