如何解决将一列设置为行 ID 然后将其删除的问题
我有一个简单的问题,但我不知道如何解决它。我有一个这样的数据框:
structure(list(ID = c(1006332,1010660,1012960,1013515,1014490),ave_ocean = c(1,0),ave_price_per_sqft = c(1419.69,912.18,600.74,673.8725,439.46),ave_year = c(2005,2009,1986.4,2006.25,1983),ave_DOM = c(7,10,36.1,10.5,104),total_num_sold = c(1L,1L,10L,4L,1L)),row.names = c(NA,-5L),class = c("tbl_df","tbl","data.frame"))
ID ave_ocean ave_price_per_sqft ave_year ave_DOM total_num_sold
<dbl> <dbl> <dbl> <dbl> <dbl> <int>
1 1006332 1 1420. 2005 7 1
2 1010660 0 912. 2009 10 1
3 1012960 0 601. 1986. 36.1 10
4 1013515 0 674. 2006. 10.5 4
5 1014490 0 439. 1983 104 1
我想将列 ID 设置为行名称,然后将其删除。我使用下面的代码:
row.names(data) <- data$ID
data <-data[,-c(1)]
当我运行它时,它首先更改行名称并将其替换为 ID,但是一旦我运行第二行以删除“ID”列,它会将行名称更改为普通行名称!任何的想法?任何替代解决方案?
解决方法
tibble::column_to_rownames(df,"ID")
阅读文档(第一句)?tibble::column_to_rownames
,还要注意返回值是 data.frame
因为这个原因。
第一行设置了行名,但您将无法看到它,因为您有一个小标题。
row.names(data) <- data$ID
#$Warning message:
#Setting row names on a tibble is deprecated.
data
# A tibble: 5 x 6
# ID ave_ocean ave_price_per_sqft ave_year ave_DOM total_num_sold
#* <dbl> <dbl> <dbl> <dbl> <dbl> <int>
#1 1006332 1 1420. 2005 7 1
#2 1010660 0 912. 2009 10 1
#3 1012960 0 601. 1986. 36.1 10
#4 1013515 0 674. 2006. 10.5 4
#5 1014490 0 439. 1983 104 1
如果您将数据更改为数据框,您将看到行名。
data <- data.frame(data)
df
# ID ave_ocean ave_price_per_sqft ave_year ave_DOM total_num_sold
#1006332 1006332 1 1419.6900 2005.00 7.0 1
#1010660 1010660 0 912.1800 2009.00 10.0 1
#1012960 1012960 0 600.7400 1986.40 36.1 10
#1013515 1013515 0 673.8725 2006.25 10.5 4
#1014490 1014490 0 439.4600 1983.00 104.0 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。