基于行值删除R data.frame列
我有这样的数据帧设置:基于行值删除R data.frame列,r,dataframe,shiny,R,Dataframe,Shiny,我有这样的数据帧设置: dfRiskChanges <<- data.frame(-1, -1, -1, -1, -1, -1, -1, -1) colnames(dfRiskChanges) <<- c('Funcational', 'Steroid', 'HxCHF', 'SOB', 'HxCOPD', 'Smoker', 'DMAll', 'HTNMed') dfRiskChanges.new <- d
dfRiskChanges <<- data.frame(-1, -1, -1, -1, -1, -1, -1, -1)
colnames(dfRiskChanges) <<- c('Funcational', 'Steroid', 'HxCHF', 'SOB',
'HxCOPD', 'Smoker', 'DMAll', 'HTNMed')
dfRiskChanges.new <- dfRiskChanges[dfRiskChanges$units != -1, ]
现在我想删除值为-1的所有列
我一直在尝试这样的事情:
dfRiskChanges <<- data.frame(-1, -1, -1, -1, -1, -1, -1, -1)
colnames(dfRiskChanges) <<- c('Funcational', 'Steroid', 'HxCHF', 'SOB',
'HxCOPD', 'Smoker', 'DMAll', 'HTNMed')
dfRiskChanges.new <- dfRiskChanges[dfRiskChanges$units != -1, ]
一切都没有成功。任何帮助都将不胜感激 让我们添加另一个具有不同值的列:
>dfRiskChanges$NoSmoke=0
> dfRiskChanges
Funcational Steroid HxCHF SOB HxCOPD Smoker DMAll HTNMed NoSmoke
1 -1 -1 -1 -1 -1 -1 -1 -1 0
接下来,只返回其中没有-1的列:
> df2=dfRiskChanges[!grepl(-1,dfRiskChanges)] #picks out all columns that don't contain -1
> df2
NoSmoke
1 0
使用dplyr中的select_if函数,我对代码做了如下修改
dfRiskChanges <- data.frame(
'Funcational' = -1,
'Steroid' = -1,
'HxCHF' = -1,
'SOB' = -1,
'HxCOPD' = -1,
'Smoker' = 1.983131,
'DMAll' = -1,
'HTNMed' = 0.6438011
)
library(dplyr)
dfRiskChanges %>% select_if(function(col) sum(col) != -1)
为什么要使用列的长度始终为1?我将示例中的0更改为-1,效果非常好!非常感谢。
dfRiskChanges <- data.frame(
'Funcational' = -1,
'Steroid' = -1,
'HxCHF' = -1,
'SOB' = -1,
'HxCOPD' = -1,
'Smoker' = 1.983131,
'DMAll' = -1,
'HTNMed' = 0.6438011
)
library(dplyr)
dfRiskChanges %>% select_if(function(col) sum(col) != -1)