R 将一列设置为行id,然后将其删除时出现问题

R 将一列设置为行id,然后将其删除时出现问题,r,dataframe,rowname,R,Dataframe,Rowname,我有一个简单的问题,但我只是不知道如何解决它。我有这样一个数据帧: structure(list(ID = c(1006332, 1010660, 1012960, 1013515, 1014490), ave_ocean = c(1, 0, 0, 0, 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),

我有一个简单的问题,但我只是不知道如何解决它。我有这样一个数据帧:

structure(list(ID = c(1006332, 1010660, 
1012960, 1013515, 1014490), ave_ocean = c(1, 0, 0, 0, 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=c(10063321010660, 101296010135151014490),平均海平面=c(1,0,0,0,0),平均每平方英尺价格=c(1419.69, 912.18600.74673.8725439.46),平均年份=c(2005、2009、1986.4, 平均价格=c(7,10,36.1,10.5104),销售总额=c(1升, 1L,10L,4L,1L),row.names=c(NA,-5L),class=c(“待定”, “tbl”、“data.frame”)) ID平均海洋平均价格每平方英尺平均年平均总销售量 1 1006332 1 1420. 2005 7 1 2 1010660 0 912. 2009 10 1 3 1012960 0 601. 1986三十六点一一零 4 1013515 0 674. 2006十点五四 5 1014490 0 439. 1983 104 1 我想将列ID设置为行名,然后将其删除。我使用以下代码:

row.names(data) <- data$ID
data <-data[,-c(1)]

row.names(data)第一行设置了行名,但您将无法看到它,因为您有一个tibble

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

row.names(data)第一行设置了行名,但您将无法看到它,因为您有一个tibble

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
行名称(数据)
阅读文档(第一句)
?tibble::column_to_rownames
,还要注意返回值是
data.frame
,因为这个原因


阅读文档(第一句)
?tibble::column_to_rownames
,还要注意返回值是
data.frame
,因为这个原因。

警告消息:在tibble上设置行名是不推荐的。
@user2974951虽然我得到了这个警告,但它仍在工作。奇怪的是,当我运行第二行代码时,它会返回到原始行名称!我需要这样做集群。我不想保留身份证,我想把他们分开。这就是为什么我将其分配给行名称(它们都是唯一的)
警告消息:在TIBLE上设置行名称是不推荐的。
@user2974951尽管我收到了此警告,但它仍然有效。奇怪的是,当我运行第二行代码时,它会返回到原始行名称!我需要这样做集群。我不想保留身份证,我想把他们分开。这就是为什么我将其指定给行名称(它们都是唯一的)
tibble::column_to_rownames(df, "ID")