首页 > 解决方案 > 格式化data.frame

问题描述

我在 Rstudio 中格式化数据框时遇到以下问题:

基线数据帧具有以下结构: 在此处输入图像描述

有两列数字。第一列多次包含几个数字。目标是将第二列中与第一列中相同数字相对应的所有数字汇总到一个单元格中。这或多或少看起来像这样:

在此处输入图像描述

例如,测试列中的第 11 行现在包含所有数字,对应于第一列中的 2。

这是应用以下代码生成的:

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

Results <- Data %>% 
    group_by(V1) %>% 
    summarise(test = p(as.character(V8))) %>%
    merge(., Data , by = 'V1') %>%
    select(V1, V8, test)

但格式应为 {2,3,12},而不是 2312。如果所有数字的长度都为 2,则可以通过以下方式工作:

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

(此代码由@Mohanasundaram在 R 中的数据帧格式中发布)

有人知道如何处理不同大小的数字吗?

标签: rdataframe

解决方案


推荐阅读