簡體   English   中英

在 R 中格式化數據幀

[英]Formatting of Data Frames in R

我有一個具有以下結構的 data.frame:

在此處輸入圖片說明

我需要的是,如果第一列中的值出現不止一次,則 V18 列中的所有相應條目都在一個單元格中結束。 我應用了以下代碼。

p <- function(v) {
  Reduce(f=paste0, x = v)
}

Data %>% 
    group_by(V1) %>% 
    summarise(test = p(as.character(V18))) %>%
    merge(., M_TEST, by = 'V1') %>%
    select(V1, V18, test)

它給:

在此處輸入圖片說明

我需要的是,而不是 4344,它是 {43,44}。 我怎樣才能做到這一點?

非常感謝您的幫助!

真摯地

試試這個:

Data %>% 
  group_by(V1) %>% 
  summarise(test = p(as.character(V18))) %>%
  merge(., M_TEST, by = 'V1') %>%
  select(V1, V18, test) %>% 
  mutate(test = str_remove_all(test, pattern = "NA")) %>% 
  mutate(test = formatC(as.numeric(test), big.mark=",", big.interval = 2L)) %>% 
  mutate(test = paste0("{", test, "}"))

編輯:對於多列,這應該有效:

Data %>% 
  group_by(V1) %>% 
  summarise_at(vars(V2:V18), paste0, collapse="") %>% 
  mutate_at(vars(V2:V18), str_remove_all, pattern = "NA") %>% 
  mutate_at(vars(V2:V18), as.numeric) %>% 
  mutate_at(vars(V2:V18), formatC, big.mark=",", big.interval = 2L)

暫無
暫無

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

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