我正在学习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进行此操作,并且我希望不重新分配它。如果不能不重新分配而无法做到这一点,那么我想得到明确的告知,因为我对此事不信任自己。
答案 0 :(得分:1)
使用以下命令导入csv文件:
college <- read.csv("path/to/file/College.csv", header = TRUE, row.names = 1)
答案 1 :(得分:1)
fread
是data.table
软件包的一部分。导入时,它是作为data.table
导入的。您无法分配行名的原因是data.table
不能具有行名。这是包的属性。参见https://cran.r-project.org/web/packages/data.table/data.table.pdf。
尝试使用base
或dplyr
,您应该不会有任何麻烦。
答案 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)