gpt4 book ai didi

r - 如何在提迪尔中正确使用扩散功能

转载 作者:行者123 更新时间:2023-12-04 10:30:45 25 4
gpt4 key购买 nike

我该如何更改下表:

Type    Name    Answer     n
TypeA Apple Yes 5
TypeA Apple No 10
TypeA Apple DK 8
TypeA Apple NA 20
TypeA Orange Yes 6
TypeA Orange No 11
TypeA Orange DK 8
TypeA Orange NA 23

改成:
Type    Name    Yes   No   DK   NA  
TypeA Apple 5 10 8 20
TypeA Orange 6 11 8 23

我使用以下代码来获取第一个表。
df_1 <- 
df %>%
group_by(Type, Name, Answer) %>%
tally()

然后,我尝试使用spread命令进入第二张表,但收到以下错误消息:

"Error: All columns must be named"


df_2 <- spread(df_1, Answer)

最佳答案

在遵循ayk的评论之后,我提供一个示例。在我看来,当您有一个data_frame的列包含具有NA值的因子或字符类的列时,除非删除它们或对数据进行重新分类,否则无法进行扩展。这特定于data_frame(请注意名称中带有下划线的dplyr类),因为在data.frame中具有NA值的情况下,此方法在我的示例中有效。例如,上面示例的稍作修改的版本:

这是数据框

library(dplyr)
library(tidyr)
df_1 <- data_frame(Type = c("TypeA", "TypeA", "TypeB", "TypeB"),
Answer = c("Yes", "No", NA, "No"),
n = 1:4)
df_1

这给出了一个看起来像这样的data_frame
Source: local data frame [4 x 3]

Type Answer n
(chr) (chr) (int)
1 TypeA Yes 1
2 TypeA No 2
3 TypeB NA 3
4 TypeB No 4

然后,当我们尝试对其进行整理时,会收到一条错误消息:
df_1 %>% spread(key=Answer, value=n)
Error: All columns must be named

但是,如果我们删除不适用项,那么它将“起作用”:
df_1 %>%
filter(!is.na(Answer)) %>%
spread(key=Answer, value=n)
Source: local data frame [2 x 3]

Type No Yes
(chr) (int) (int)
1 TypeA 2 1
2 TypeB 4 NA

但是,删除NA可能不会给您理想的结果:即,您可能希望将它们包括在整理过的表格中。您可以直接修改数据以将NA更改为更具描述性的值。或者,您可以将数据更改为data.frame,然后将其散布得很好:
as.data.frame(df_1) %>% spread(key=Answer, value=n)
Type No Yes NA
1 TypeA 2 1 NA
2 TypeB 4 NA 3

关于r - 如何在提迪尔中正确使用扩散功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34684925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com