如何在特定列上使用 sapply 函数?
How to use sapply function on specific columns?
我有一个函数可以删除没有给定数量的唯一值的列。此命令对整个数据帧执行此操作。我将如何在特定列上执行此操作?说第 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))
我们可以使用
Filter(function(x) length(unique(x)) > 440, ms_10[3:50])
我有一个函数可以删除没有给定数量的唯一值的列。此命令对整个数据帧执行此操作。我将如何在特定列上执行此操作?说第 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))
我们可以使用
Filter(function(x) length(unique(x)) > 440, ms_10[3:50])