【问题标题】:R data frame table set the values into columnsR数据框表将值设置为列
【发布时间】:2020-06-29 12:24:03
【问题描述】:

有一张桌子:

class<-c("A","B", "B","C","D","D","D")
value<-c(1,3,2,5,6,2,5)
df<-cbind(class,value)

例如,类“B”和“C”有多个值。我想将类的每个值设置为单独的列。我想得到以下输出:

你能帮帮我吗?

提前致谢, 最好的祝福, 英娜

【问题讨论】:

标签: r multiple-columns


【解决方案1】:

这可能会有所帮助:

首先,使用data.frame()使其成为数据框

class <- c("A","B", "B","C","D","D","D")
value <- c(1,3,2,5,6,2,5)
df <- data.frame(class,value)

# A bunch of packages that might help you.
library(tidyverse)

df %>%
    group_by(class) %>%
    mutate(new_names = paste0("value", 1:n())) %>%
    pivot_wider(names_from = new_names)

输出:

# A tibble: 4 x 4
# Groups:   class [4]
  class value1 value2 value3
  <chr>  <dbl>  <dbl>  <dbl>
1 A          1     NA     NA
2 B          3      2     NA
3 C          5     NA     NA
4 D          6      2      5

(我不会把0 - NA 是缺少值的具体解决方案)

【讨论】:

  • 非常感谢!它完美地工作。 NA 可以随时更换。这不是问题
【解决方案2】:

您可以使用splitrbind 并用lapply[ 填充缺失:

x <- split(df[,2], df[,1])
do.call("rbind", lapply(x, "[", 1:max(lengths(x))))
#  [,1] [,2] [,3]
#A "1"  NA   NA  
#B "3"  "2"  NA  
#C "5"  NA   NA  
#D "6"  "2"  "5" 

【讨论】:

    猜你喜欢
    • 2018-12-17
    • 2022-11-13
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 2015-04-16
    相关资源
    最近更新 更多