我有一个数据框,我将其分为三个。在原始数据帧中,我可以在变量上进一步拆分数据,但是一旦我将其子集化,我就不能再这样做,错误 $ 运算符对于原子向量无效。我不清楚为什么会这样,有人有什么想法吗?
我无法真正提供最小的可重现示例,但下面是使用的代码。
#Origional dataset = CT_variable_Biom
##First splitting into three categories
CT_variable_Biom <- CT_variable_Biom %>%
mutate(
level_of_risk = case_when(
high_risk == 1 ~ "high",
medium_risk == 1 ~ "medium",
low_risk == 1 ~ "low",
TRUE ~ NA_character_
)
)
medium_risk <- subset(CT_variable_Biom, CT_variable_Biom$level_of_risk=="medium")
high_risk <- subset(CT_variable_Biom, CT_variable_Biom$level_of_risk=="high")
low_risk <- subset(CT_variable_Biom, CT_variable_Biom$level_of_risk=="low")
#Split based on level
#This one works as normal
False_Negatives_overall <- subset(CT_variable_Biom , CT_variable_Biom$Biomarker<0.25)
#This one returns $ operator is invalid for atomic vectors
False_Negatives <- subset(medium_risk, medium_risk$Biomarker<0.25)
我认为我的三个类别子集中的某些内容导致了这种情况,但我不确定是什么
非常感谢。
代码:
CT_variable_Biom <- data.frame(
name = c( "x1", "x2", "x3", "x4", "x5"),
high_risk = c(1, 0, 1, 0, 0),
medium_risk = c(0, 1, 0, 0, 1),
low_risk = c(0, 0, 0, 1, 0),
level_of_risk = c("high", "medium", "high", "low", "medium"),
Biomarker = c(0.50, 0.10, 0.50, 0.50, 0.50)
)
medium_risk <- subset(CT_variable_Biom, CT_variable_Biom$level_of_risk=="medium")
False_Negatives <- subset(medium_risk, Biomarker<0.25)
数据框属性
medium_risk
和数据集 medium_risk
之间出现混淆。
下面的代码有效:
medium_risk_df <- subset(CT_variable_Biom, CT_variable_Biom$level_of_risk=="medium")
subset(medium_risk_df , medium_risk_df$Biomarker < 0.25)