R 数据框 table 将值设置为列
R data frame table set the values into columns
有一个table:
class<-c("A","B", "B","C","D","D","D")
value<-c(1,3,2,5,6,2,5)
df<-cbind(class,value)
例如,class中的“B”和“C”有多个值。我想将 class 的每个值设置到一个单独的列中。我想获得以下输出:
你能帮帮我吗?
提前致谢,
最好的祝福,
伊娜
这可能有帮助:
首先,使用 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
是如果缺少某个值的具体解决方案)
您可以使用 split
和 rbind
并用 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"
有一个table:
class<-c("A","B", "B","C","D","D","D")
value<-c(1,3,2,5,6,2,5)
df<-cbind(class,value)
例如,class中的“B”和“C”有多个值。我想将 class 的每个值设置到一个单独的列中。我想获得以下输出:
你能帮帮我吗?
提前致谢, 最好的祝福, 伊娜
这可能有帮助:
首先,使用 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
是如果缺少某个值的具体解决方案)
您可以使用 split
和 rbind
并用 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"