【发布时间】:2014-12-04 08:32:27
【问题描述】:
我有一个大型数据框,我想使用我最近发现的优秀包dplyr (Wickham)。我想过滤掉包含字符的列。这可能吗?
例如,在nycflights13 包内的flights 数据集中,如何过滤掉具有character 类的列?
library(nycflights13)
data(flights)
str(flights)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 336776 obs. of 16 variables:
$ year : int 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 ...
$ month : int 1 1 1 1 1 1 1 1 1 1 ...
$ day : int 1 1 1 1 1 1 1 1 1 1 ...
$ dep_time : int 517 533 542 544 554 554 555 557 557 558 ...
$ dep_delay: num 2 4 2 -1 -6 -4 -5 -3 -3 -2 ...
$ arr_time : int 830 850 923 1004 812 740 913 709 838 753 ...
$ arr_delay: num 11 20 33 -18 -25 12 19 -14 -8 8 ...
$ carrier : chr "UA" "UA" "AA" "B6" ...
$ tailnum : chr "N14228" "N24211" "N619AA" "N804JB" ...
$ flight : int 1545 1714 1141 725 461 1696 507 5708 79 301 ...
$ origin : chr "EWR" "LGA" "JFK" "JFK" ...
$ dest : chr "IAH" "IAH" "MIA" "BQN" ...
$ air_time : num 227 227 160 183 116 150 158 53 140 138 ...
$ distance : num 1400 1416 1089 1576 762 ...
$ hour : num 5 5 5 5 5 5 5 5 5 5 ...
$ minute : num 17 33 42 44 54 54 55 57 57 58 ...
有什么想法吗?
【问题讨论】:
-
这有点迂腐,但仅供参考,在 dplyr 中,您使用
select选择列,使用filter选择行 - 所以从技术上讲,您不能“过滤列”。 -
我的回答是“为什么?”。您想对需要删除所有字符列的这个(或其他一些)数据集做什么?可能有更好的方法...
-
有。在我的回答中,使用
Filter -
@RichardScriven 那是如何,我在问为什么。我能想到去掉 char 列的唯一原因是转换为数字矩阵,但这里的数字列是如此不同,我想不出为什么要这样做......