首页 > 解决方案 > 使用 r 编程显示列名

问题描述

我需要显示具有最大气缸的汽车的名称。只取名别的

   #READING THE AUTO FILE
myfile=read.csv("Auto.csv")
#creating the matrix
mpg =c(myfile$mpg)
cylinders=c(myfile$cylinders)
displacement=c(myfile$displacement)
horsepower=c(myfile$horsepower)
weight=c(myfile$weight)
acceleration=c(myfile$acceleration)
year=c(myfile$year)
origin=c(myfile$origin)
name=c(myfile$name)
matrixAuto=matrix(c(mpg,cylinders,displacement,horsepower,weight,acceleration,year,origin),20,8)
matrixAuto
rownames(matrixAuto)=c("chevrolet chevelle malibu","buick skylark 320","plymouth satellite","amc rebel sst","ford torino","ford galaxie 500","chevrolet impala","plymouth fury iii","pontiac catalina","amc ambassador dpl","dodge challenger se","plymouth 'cuda 340","chevrolet monte carlo","buick estate wagon (sw)","toyota corona mark ii","plymouth duster","amc hornet","ford maverick","datsun pl510","volkswagen 1131 deluxe sedan")
matrixAuto
colnames(matrixAuto)=c("mpg","cylinders","displacement","horsepower","weight","accelaration","year","origin")
m=max(cylinders)==cylinders

如何使用 m 检索汽车名称?

我也解决了它,但不明白为什么这有效 rownames(matrixAuto[m,])

标签: rexcel

解决方案


让我们看一下mtcars与您的数据集非常相似的数据集,它包含在 R 中:

rownames(mtcars[mtcars$cyl==max(mtcars$cyl),])

返回具有最大气缸数的每个汽车名称。它是如何工作的?

> mtcars$cyl==max(mtcars$cyl)
[1] FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE
[21] FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE

给出对应于数据集每一行的向量mtcars. 它包含一个布尔值,具体取决于给定行是否具有最大数量的柱面。所以

mtcars[mtcars$cyl==max(mtcars$cyl),]

只返回你的汽车的排最大气缸数。

由于您只想要汽车的名称并且mtcars是具有命名行的数据集,因此您可以通过

> rownames(mtcars[mtcars$cyl==max(mtcars$cyl),])
 [1] "Hornet Sportabout"   "Duster 360"          "Merc 450SE"          "Merc 450SL"          "Merc 450SLC"        
 [6] "Cadillac Fleetwood"  "Lincoln Continental" "Chrysler Imperial"   "Dodge Challenger"    "AMC Javelin"        
[11] "Camaro Z28"          "Pontiac Firebird"    "Ford Pantera L"      "Maserati Bora"  

推荐阅读