gpt4 book ai didi

r - 如何删除在R中具有分类值的多列?

转载 作者:行者123 更新时间:2023-12-04 10:00:59 25 4
gpt4 key购买 nike

我知道如何按名称删除列,但我不太确定如何删除具有分类值的列。可以手动查看哪些列具有分类值,但使用 R 代码对我来说并不直观。如何检测具有分类值的列?有什么办法可以做到这一点?

最小数据

mydf=structure(list(taken_time = c(15L, 5L, 39L, -21L, 46L, 121L), 
ap6xl = c(203.2893857, 4.858269406, 2, 14220, 218.2215352,
115.5227706), pct5 = c(732.074484, 25.67901235, 1.01, 120.0477168,
3621.328567, 79.30561111), crp4 = c(196115424.7, 1073624.455,
1.23, 1457496.474, 10343851.7, 81288042.73), age = c(52L,
74L, 52L, 67L, 82L, 67L), gender = structure(c(2L, 2L, 2L,
1L, 2L, 1L), .Label = c("F", "M"), class = "factor"), inpatient_readmission_time_rtd = c(79.78819444,
57.59068053, 57.59068053, 57.59068053, 57.59068053, 9.893055556
), infection_flag = c(0L, 0L, 1L, 1L, 0L, 1L), temperature_value = c(98.9,
98.9, 98, 101.3, 99.5, 98.1), heartrate_value = c(106, 61,
78, 91, 120, 68), pH_result_time_rta = c(11, 85.50402145,
85.50402145, 85.50402145, 85.50402145, 85.50402145), gcst_value = c(15,
15, 15, 14.63769293, 15, 14.63769293)), row.names = c(NA,
6L), class = "data.frame")

而不是手动输入具有分类值的列的名称,有什么方法可以检测分类列并删除它?

我关心的是诸如数据框可能有超过 10 个分类列的情况,这有点痛苦,所以我很好奇是否可以使用 R。有什么想法吗?

例如,我可以通过手动查看哪些是分类列来为上述数据框执行此操作:
mydf <- mydf[!names(mydf) %in% c("gender", "infection_flag")]

有什么方法可以检测哪些是分类列并将其删除以进行数值计算?任何的想法?

最佳答案

带有 base R 的选项

i1 <- sapply(mydf, is.numeric)
df[i1]

关于r - 如何删除在R中具有分类值的多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61824515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com