簡體   English   中英

從 data.frame 和 tibble 中刪除標簽

[英]Remove labels from within data.frame and tibble

我已經使用命名向量來制作數據框。 當我將此 data.frame 轉換為 tibble 時,我最終得到命名列表而不是常規列。 我怎樣才能刪除這些名稱?

示例數據

ww = structure(list(is_character = list(`labA` = 1, `labB` = 1, `labC` = 1), 
                    is_numeric = list(`labA` = 0, `labB` = 0, `labC` = 0),
                    is_logical = list(`labA` = 0, `labB` = 0, `labC` = 0),
                    column_name = c("labA", "labB", "labC")),
               row.names = c(NA, -3L), class = "data.frame")

當作為 dataframe 查看時,一切看起來都很好。as.data.frame as.data.frame(ww)返回以下內容:

  is_character is_numeric is_logical column_name
1            1          0          0        labA
2            1          0          0        labB
3            1          0          0        labC

但是當轉換為 tibble 時,我最終得到的是命名列表而不是普通列。 as_tibble(ww)返回以下內容:

# A tibble: 3 x 4
  is_character is_numeric   is_logical   column_name
  <named list> <named list> <named list> <chr>      
1 <dbl [1]>    <dbl [1]>    <dbl [1]>    labA       
2 <dbl [1]>    <dbl [1]>    <dbl [1]>    labB       
3 <dbl [1]>    <dbl [1]>    <dbl [1]>    labC 

我不想在我的 tibble 中使用命名列表,我想使用純數字列。 我怎樣才能做到這一點?

我試圖從未命名的列表中制作原始的 data.frame,但這會帶來其他問題。 因此,最好刪除名稱。 我用unname做了幾次嘗試,但都沒有成功。

有幾種簡單的方法:

as_tibble(ww) %>% mutate(across(everything(), unlist))

或者

as_tibble(ww) %>% unnest(everything())

兩種方法都會產生:

  is_character is_numeric is_logical column_name
         <dbl>      <dbl>      <dbl> <chr>      
1            1          0          0 labA       
2            1          0          0 labB       
3            1          0          0 labC  

請注意,您的is_character列不是字符,您的is_logical列不符合邏輯。 但是,如果您的輸入數據是這樣的:

ww = structure(list(is_character = list(`labA` = "a", `labB` = "b", `labC` = "c"), 
                    is_numeric = list(`labA` = 0, `labB` = 0, `labC` = 0),
                    is_logical = list(`labA` = T, `labB` = F, `labC` = T),
                    column_name = c("labA", "labB", "labC")),
               row.names = c(NA, -3L), class = "data.frame")

那么上述方法會產生這樣的結果:

# A tibble: 3 x 4
  is_character is_numeric is_logical column_name
  <chr>             <dbl> <lgl>      <chr>      
1 a                     0 TRUE       labA       
2 b                     0 FALSE      labB       
3 c                     0 TRUE       labC       

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM