以下表为例,我如何只过滤“chr”类型的列?例如,我想看到一个只有字符串变量的列表:
例如 :
木材chr
dat <- read.table(text = " Timber apcalc admit num
pine 0 0 7
pine 0 1 1
oak 1 0 3
olive 1 1 7
olive 0 0 5
oak 0 1 1
pine 1 0 0
pine 1 1 6", header = TRUE)
答案 0 :(得分:1)
要为您提供数据框中的字符变量(列)列表,请使用:
sapply(dat[sapply(dat, is.character)],class)
在这种情况下它给出:
named list()
然而,这不会产生预期的结果。使用str(dat)
,您可以获得有关整个数据框中变量(列)的更多信息,其中包含:
'data.frame': 8 obs. of 4 variables:
$ timber: Factor w/ 3 levels "oak","olive",..: 3 3 1 2 2 1 3 3
$ apcalc: int 0 0 1 1 0 0 1 1
$ admit : int 0 1 0 1 0 1 0 1
$ num : int 7 1 3 7 5 1 0 6
如您所见,数据集中没有字符变量。当你使用:
sapply(dat[sapply(dat, is.factor)],class)
它给出了:
timber
"factor"
答案 1 :(得分:1)
您可以将is.numeric
功能与sapply
结合使用:
dat[sapply(dat, is.numeric)]
apcalc admit num
1 0 0 7
2 0 1 1
3 1 0 3
4 1 1 7
5 0 0 5
6 0 1 1
7 1 0 0
8 1 1 6