使用数据框的第一数据列作为行名

时间:2019-01-03 21:35:25

标签: r

我正在学习R,目前正在查看ISLR的College.csv数据集(找到here)。我正在尝试将第一个数据列设置为行名,但是我发现的任何解决方案都没有用:

college <- fread("College.csv") rownames(college) <- college$V1 college <- college[, -1] college

college <- fread("College.csv") rownames(college) <- college[[1]] college <- college[, -1] college

college <- fread("College.csv") rownames(college) <- college[,1] college[,1] <- NULL college

college <- fread("College.csv") rownames(college) <- college[,1] college <- college(, -1) college

我在StackExchange,其他站点上以及在我正在使用的书中找到了关于此问题的大量建议,并对为什么没有一个对我起作用感到困惑。我欢迎任何建议。

编辑以获取更多详细信息:我想使用fread或至少使用read_csv进行此操作,并且我希望不重新分配它。如果不能不重新分配而无法做到这一点,那么我想得到明确的告知,因为我对此事不信任自己。

3 个答案:

答案 0 :(得分:1)

使用以下命令导入csv文件:

college <- read.csv("path/to/file/College.csv", header = TRUE, row.names = 1)

答案 1 :(得分:1)

freaddata.table软件包的一部分。导入时,它是作为data.table导入的。您无法分配行名的原因是data.table不能具有行名。这是包的属性。参见https://cran.r-project.org/web/packages/data.table/data.table.pdf

尝试使用basedplyr,您应该不会有任何麻烦。

另外,请参见Display row names in a data.table object

答案 2 :(得分:0)

您可以使用此

college<- read.csv("C:/Users/USER/Downloads/College.csv")
rownames(college) <- college[,1]

或者在导入时

college<- read.csv("C:/Users/USER/Downloads/College.csv", header = TRUE, row.names = 1)