r - 如何在特定列上使用 sapply 函数?
问题描述
我有一个函数可以删除没有给定数量的唯一值的列。该命令对整个数据帧执行此操作。我将如何在特定列上执行此操作?说第 3 到 50 列?谢谢。
ms_10 <- ms_10[, sapply(ms_10, function(col) length(unique(col))) > 440]
解决方案
您可以先对数据进行子集化,然后再应用相同的函数。
new_data <- ms_10[3:50]
new_data <- new_data[, sapply(new_data, function(col) length(unique(col))) > 440]
如果您不想创建临时变量 ( new_data
)。
ms_10[3:50][, sapply(ms_10[3:50], function(col) length(unique(col))) > 440]
我们还可以使用dplyr
:
library(dplyr)
ms_10 %>%
select(3:50) %>%
select(where(~n_distinct(.) > 440))
推荐阅读
- java - 回复消息长度 4217268 小于最大消息长度 4194304
- bash - 我可以运行对话框,然后将终端恢复到以前的状态吗?
- python - Python pop 和 append 不会将 list1 中的所有元素移动到列表 2
- docusignapi - 在发送给下一个签名者之前执行外部验证
- python - 查找并单击标签,Selenium
- sql - 用于将具有匹配 ID 的多行返回到单行的 SQL 函数
- timer - 仅使用 systemd 计时器 oncalendar 事件
- android - 你能在颤动中复制 Android Stock Camera 旋转吗?
- deep-learning - BERT 的数据预处理(基础德语)
- spring - 如何从属性文件中读取 SQL 查询