如何根据 R 中的类选择数据框列?
要根据R中的类选择数据框列,我们可以按照以下步骤操作-
首先,创建一个数据框或考虑一个内置的数据集。
然后,使用带有类函数的dplyr包的select_if函数。
示例1
str(CO2)输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
Classes ‘nfnGroupedData’, ‘nfGroupedData’, ‘groupedData’ and 'data.frame':84 obs. of 5 variables: $ Plant :Ord.factorw/ 12 levels "Qn1"<"Qn2"<"Qn3"<..: 1 1 1 1 1 1 1 2 2 2 ... $ Type : Factor w/ 2 levels "Quebec","Mississippi": 1 1 1 1 1 1 1 1 1 1 ... $ Treatment: Factor w/ 2 levels "nonchilled","chilled": 1 1 1 1 1 1 1 1 1 1 ... $ conc : num 95 175 250 350 500 675 1000 95 175 250 ... $ uptake : num 16 30.4 34.8 37.2 35.3 39.2 39.7 13.6 27.3 37.1 ... - attr(*, "formula")=Class 'formula' language uptake ~ conc | Plant .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> - attr(*, "outer")=Class 'formula' language ~Treatment * Type .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> - attr(*, "labels")=List of 2 ..$ x: chr "Ambient carbon dioxide concentration" ..$ y: chr "CO2 uptake rate" - attr(*, "units")=List of 2 ..$ x: chr "(uL/L)" ..$ y: chr "(umol/m^2 s)"
根据类别选择CO2中的列
使用dplyr包中的select_if函数选择CO2数据框中的因子列-
library(dplyr) CO2 %>% select_if(is.factor)输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
Plant Type Treatment 1 Qn1 Quebec nonchilled 2 Qn1 Quebec nonchilled 3 Qn1 Quebec nonchilled 4 Qn1 Quebec nonchilled 5 Qn1 Quebec nonchilled 6 Qn1 Quebec nonchilled 7 Qn1 Quebec nonchilled 8 Qn2 Quebec nonchilled 9 Qn2 Quebec nonchilled 10 Qn2 Quebec nonchilled 11 Qn2 Quebec nonchilled 12 Qn2 Quebec nonchilled 13 Qn2 Quebec nonchilled 14 Qn2 Quebec nonchilled 15 Qn3 Quebec nonchilled 16 Qn3 Quebec nonchilled 17 Qn3 Quebec nonchilled 18 Qn3 Quebec nonchilled 19 Qn3 Quebec nonchilled 20 Qn3 Quebec nonchilled 21 Qn3 Quebec nonchilled 22 Qc1 Quebec chilled 23 Qc1 Quebec chilled 24 Qc1 Quebec chilled 25 Qc1 Quebec chilled 26 Qc1 Quebec chilled 27 Qc1 Quebec chilled 28 Qc1 Quebec chilled 29 Qc2 Quebec chilled 30 Qc2 Quebec chilled 31 Qc2 Quebec chilled 32 Qc2 Quebec chilled 33 Qc2 Quebec chilled 34 Qc2 Quebec chilled 35 Qc2 Quebec chilled 36 Qc3 Quebec chilled 37 Qc3 Quebec chilled 38 Qc3 Quebec chilled 39 Qc3 Quebec chilled 40 Qc3 Quebec chilled 41 Qc3 Quebec chilled 42 Qc3 Quebec chilled 43 Mn1 Mississippi nonchilled 44 Mn1 Mississippi nonchilled 45 Mn1 Mississippi nonchilled 46 Mn1 Mississippi nonchilled 47 Mn1 Mississippi nonchilled 48 Mn1 Mississippi nonchilled 49 Mn1 Mississippi nonchilled 50 Mn2 Mississippi nonchilled 51 Mn2 Mississippi nonchilled 52 Mn2 Mississippi nonchilled 53 Mn2 Mississippi nonchilled 54 Mn2 Mississippi nonchilled 55 Mn2 Mississippi nonchilled 56 Mn2 Mississippi nonchilled 57 Mn3 Mississippi nonchilled 58 Mn3 Mississippi nonchilled 59 Mn3 Mississippi nonchilled 60 Mn3 Mississippi nonchilled 61 Mn3 Mississippi nonchilled 62 Mn3 Mississippi nonchilled 63 Mn3 Mississippi nonchilled 64 Mc1 Mississippi chilled 65 Mc1 Mississippi chilled 66 Mc1 Mississippi chilled 67 Mc1 Mississippi chilled 68 Mc1 Mississippi chilled 69 Mc1 Mississippi chilled 70 Mc1 Mississippi chilled 71 Mc2 Mississippi chilled 72 Mc2 Mississippi chilled 73 Mc2 Mississippi chilled 74 Mc2 Mississippi chilled 75 Mc2 Mississippi chilled 76 Mc2 Mississippi chilled 77 Mc2 Mississippi chilled 78 Mc3 Mississippi chilled 79 Mc3 Mississippi chilled 80 Mc3 Mississippi chilled 81 Mc3 Mississippi chilled 82 Mc3 Mississippi chilled 83 Mc3 Mississippi chilled 84 Mc3 Mississippi chilled
示例2
考虑基础R中的PlantGrowth数据框并使用str函数检查它的结构-
str(PlantGrowth)输出结果
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
$Rscript main.r 'data.frame':30 obs. of 2 variables: $ weight: num 4.17 5.58 5.18 6.11 4.5 4.61 5.17 4.53 5.33 5.14 ... $ group : Factor w/ 3 levels "ctrl","trt1",..: 1 1 1 1 1 1 1 1 1 1 ...
根据类选择PlantGrowth中的列
使用dplyr包中的select_if函数选择PlantGrowth数据框中的数字列-
library(dplyr) PlantGrowth %>% select_if(is.numeric)输出结果
weight 1 4.17 2 5.58 3 5.18 4 6.11 5 4.50 6 4.61 7 5.17 8 4.53 9 5.33 10 5.14 11 4.81 12 4.17 13 4.41 14 3.59 15 5.87 16 3.83 17 6.03 18 4.89 19 4.32 20 4.69 21 6.31 22 5.12 23 5.54 24 5.50 25 5.37 26 5.29 27 4.92 28 6.15 29 5.80 30 5.26