R根据另一列中的因素创建新列
R Creating new columns based on factors in another column
我是 R 新手;尝试做一些基本的数据操作。然而,我已经被这个问题困扰了2天。
假设我有一个如下所示的数据框,它包含 60 个 obs,其中“类别”列中的每个变量都具有相同的数量:
category cond
1 A 1
2 B 2
3 C 1
4 D 1
5 E 1
6 F 3
7 A 5
8 B 0
.. .. ..
60 F 2
所需的新数据框(由“cond”列):
A B C D E F
1 1 2 1 1 0 3
2 5 0 . . . .
3 . . . . . .
. . . . . . .
. . . . . . .
10 . . . . . 2
由于第一个数据框有 60 行(“类别”列中的所有变量的数量相等 60/6=10)新数据框有 10 行。
我试过这个例子
A<-old%>% filter(category =="A")%>%summarise(`cond`)
B<-old%>% filter(category =="B")%>%summarise(`cond`)
new<-cbind(A,B)
...
..
这对我有用,但需要花费大量时间并更改列名,这是这个问题的另一部分。
提前致谢。
试试这个
df %>% group_by(category) %>% mutate(id = row_number()) %>% ungroup() %>% pivot_wider(id_cols = id, names_from = category, values_from = cond) %>% select(-id)
你的预期结果有错字吗?
未经检验的猜测:
require(dplyr)
old %>%
spread(A,B) -> new
我是 R 新手;尝试做一些基本的数据操作。然而,我已经被这个问题困扰了2天。
假设我有一个如下所示的数据框,它包含 60 个 obs,其中“类别”列中的每个变量都具有相同的数量:
category cond
1 A 1
2 B 2
3 C 1
4 D 1
5 E 1
6 F 3
7 A 5
8 B 0
.. .. ..
60 F 2
所需的新数据框(由“cond”列):
A B C D E F
1 1 2 1 1 0 3
2 5 0 . . . .
3 . . . . . .
. . . . . . .
. . . . . . .
10 . . . . . 2
由于第一个数据框有 60 行(“类别”列中的所有变量的数量相等 60/6=10)新数据框有 10 行。
我试过这个例子
A<-old%>% filter(category =="A")%>%summarise(`cond`)
B<-old%>% filter(category =="B")%>%summarise(`cond`)
new<-cbind(A,B)
... .. 这对我有用,但需要花费大量时间并更改列名,这是这个问题的另一部分。
提前致谢。
试试这个
df %>% group_by(category) %>% mutate(id = row_number()) %>% ungroup() %>% pivot_wider(id_cols = id, names_from = category, values_from = cond) %>% select(-id)
你的预期结果有错字吗?
未经检验的猜测:
require(dplyr)
old %>%
spread(A,B) -> new