我試圖找出我的任何一個列的值是否超過了某個值,比如說7。如果是,那就把它歸類為多,否則就是少。我的問題與這里的問題類似,但我不知道如何根據我的情況更新它。我需要將這些值按行進行分類。另外,有些行可以只用NA/NaN值來填寫。我需要將它們保存在一個資料框架中,這樣我就不能在計算前過濾它們。
示例:
# Example: 如果資料符合條件則進行分類:
data <- data. frame(V1=c(1。 5, 7, NA),
V2=c(1。 5。 8, NA),,
V3=c(3。 9。 10, NaN))
# 對每一列進行分類。
ifelse(data$V1 > =7, "more"。 "less")
# 基于所有列進行分類?不起作用!
data$NewCol < - ( Reduce(`|`。 lapply(data, > =, 7)))
期望的結果:
V1 V2 V3 newCol
1 1 1 3 less # no value is >= 7
2 5 5 9 more
3 7 8 10 多
4 NA NA NaN NA
uj5u.com熱心網友回復:
你可以使用rowSums -
data$newCol < - ifelse(rowSums(data > = 7) >。 0, 'more'/span>。 'less')
或者,如果我們有多個條件需要檢查,可以使用dplyr與case_when。
library(dplyr)
資料%>%。
rowwise() %>%
mutate(newCol = case_when(所有(是。 na(c_across()/span>)) ~ NA_character_。
any(c_across() >。 = 7) ~ 'more',
TRUE ~ 'less'))
# V1 V2 V3 newCol
# <dbl> <dbl> <dbl> <cr>
#1 1 1 3 less
#2 5 5 9 more
#3 7 8 10 更多
#4 NA NA NaN NA
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/314478.html
標籤:
