选择以字母“M”开头的mtcars数据集

选择以字母“M”开头的mtcars数据集,r,dataset,extract,R,Dataset,Extract,我试图从R中的mtcars数据集中提取数据,特别是那些名称以“M”开头的汽车,但是汽车的名称不是一个变量,所以我不能做类似的事情 Subset <- mtcars[grep("M", mtcars$name), ] 有人知道怎么解决这个问题吗? 谢谢你@Pumpkin C-不确定,为什么会得到反对票。车辆名称是mtcars数据集中的行名称。以下将产生所需的输出: > mtcars[grep('^M', rownames(mtcars)),] mpg

我试图从R中的mtcars数据集中提取数据,特别是那些名称以“M”开头的汽车,但是汽车的名称不是一个变量,所以我不能做类似的事情

Subset <- mtcars[grep("M", mtcars$name), ]
有人知道怎么解决这个问题吗?
谢谢你

@Pumpkin C-不确定,为什么会得到反对票。车辆名称是mtcars数据集中的行名称。以下将产生所需的输出:

> mtcars[grep('^M', rownames(mtcars)),]

               mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4     21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Merc 240D     24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230      22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Merc 280      19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C     17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Merc 450SE    16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Merc 450SL    17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Merc 450SLC   15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Maserati Bora 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

@南瓜C-不确定,为什么会得到反对票。车辆名称是mtcars数据集中的行名称。以下将产生所需的输出:

> mtcars[grep('^M', rownames(mtcars)),]

               mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4     21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Merc 240D     24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230      22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Merc 280      19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C     17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Merc 450SE    16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Merc 450SL    17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Merc 450SLC   15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Maserati Bora 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

@萨加尔的回答简洁明了。我只是在这里加上这个,以防有人更喜欢这种方法。

SuppressPackageStatupMessagesLibraryTidyVerse 图书馆长 mtcars%>% 行名称\u到\u列%>% 过滤器名称,^M >rowname mpg气缸显示hp drat wt qsec vs am齿轮carb >1马自达RX421.06160.01103.902.62016.46014 >2马自达RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 >3 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 >4 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 >5 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 >6 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 >7 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 3 3 >8 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 3 >9 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 3 3 >10玛莎拉蒂宝来15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
@萨加尔的回答简洁明了。我只是在这里加上这个,以防有人更喜欢这种方法。

SuppressPackageStatupMessagesLibraryTidyVerse 图书馆长 mtcars%>% 行名称\u到\u列%>% 过滤器名称,^M >rowname mpg气缸显示hp drat wt qsec vs am齿轮carb >1马自达RX421.06160.01103.902.62016.46014 >2马自达RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 >3 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 >4 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 >5 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 >6 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 >7 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 3 3 >8 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 3 >9 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 3 3 >10玛莎拉蒂宝来15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
通过包含data.table解决方案,增加了Sagar的答案和Markly的tidyverse方法

library(data.table)
dat <- data.table(mtcars, keep.rownames = TRUE)
dat[rn %like% "^M"]
#                rn  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#  1:     Mazda RX4 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#  2: Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
#  3:     Merc 240D 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
#  4:      Merc 230 22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
#  5:      Merc 280 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
#  6:     Merc 280C 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
#  7:    Merc 450SE 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
#  8:    Merc 450SL 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
#  9:   Merc 450SLC 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
# 10: Maserati Bora 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

通过包含data.table解决方案,增加了Sagar的答案和Markly的tidyverse方法

library(data.table)
dat <- data.table(mtcars, keep.rownames = TRUE)
dat[rn %like% "^M"]
#                rn  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#  1:     Mazda RX4 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#  2: Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
#  3:     Merc 240D 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
#  4:      Merc 230 22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
#  5:      Merc 280 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
#  6:     Merc 280C 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
#  7:    Merc 450SE 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
#  8:    Merc 450SL 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
#  9:   Merc 450SLC 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
# 10: Maserati Bora 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

您可以使用RowNamesMTCars获取名称您可以使用RowNamesMTCars获取名称非常感谢。一个可能太简单的问题是,你怎么知道这些车的名字在mtcars中被称为“rownames”,因为如果我打印mtcars或使用名称mtcars,它会让我从mpg、cyl开始。。。。。。所以我有点困惑,我得到了“rownames”的printmtcars将显示整个数据集及其rownames。namesmtcars只显示列名,因为您看不到汽车名称。正如@G5W在注释中所建议的那样,rownamesmtcars显示数据帧的行名。非常感谢。非常感谢你。一个可能太简单的问题是,你怎么知道这些车的名字在mtcars中被称为“rownames”,因为如果我打印mtcars或使用名称mtcars,它会让我从mpg、cyl开始。。。。。。所以我有点困惑,我得到了“rownames”的printmtcars将显示整个数据集及其rownames。namesmtcars只显示列名,因为您看不到汽车名称。正如@G5W在注释中所建议的那样,rownamesmtcars显示数据帧的行名。非常感谢。这太酷了!这个data.table有点像python中的熊猫吗?太酷了!这个data.table有点像python中的熊猫吗?谢谢!。。。。。。。非常感谢。