R 在数据框中识别手动与自动
我有一个表示应用程序的数据集。有一个名为“Text”的字符串列。填充字符串列时,这意味着记录是手动处理的。当字符串列由“?”填充时,这意味着记录被自动处理。有多行表示单个应用程序 如果一个应用程序有一行指示它是手动处理的,另一行指示它是自动处理的,则它总是恢复为手动处理 数据帧:R 在数据框中识别手动与自动,r,group-by,R,Group By,我有一个表示应用程序的数据集。有一个名为“Text”的字符串列。填充字符串列时,这意味着记录是手动处理的。当字符串列由“?”填充时,这意味着记录被自动处理。有多行表示单个应用程序 如果一个应用程序有一行指示它是手动处理的,另一行指示它是自动处理的,则它总是恢复为手动处理 数据帧: App Text 1 Hello 2 Happening 3 Sly 3 ? 4 Hat 5 Hello 5 Juice 6
App Text
1 Hello
2 Happening
3 Sly
3 ?
4 Hat
5 Hello
5 Juice
6 ?
7 Hello
7 Happening
7 ?
8 ?
我想创建一个新的列来标识如何处理记录。我试过用语句和计数“?”来分组,但没有成功
期望输出:
App Decision
1 Manual
2 Manual
3 Manual
4 Manual
5 Manual
6 Automated
7 Manual
8 Automated
这里有一个选择。按“应用程序”分组后,
总结
,根据“文本”中的所有元素是否都是?
library(dplyr)
df1 %>%
group_by(App) %>%
summarise(Decision = c( "Manual", "Automated")[all(Text == "?") + 1])
# A tibble: 8 x 2
# App Decision
# <int> <chr>
#1 1 Manual
#2 2 Manual
#3 3 Manual
#4 4 Manual
#5 5 Manual
#6 6 Automated
#7 7 Manual
#8 8 Automated
数据
df1还可以总结(Decision=if_else(all(Text=“?”),“Automated”,“Manual”)
,它读起来更像是你可能会说出来的loud@CalumYou是的,因为它是一个单一的真/假,我想if/else
更合适。你喜欢吗
df1 %>%
group_by(App) %>%
summarise(Decision = if(all(Text == "?")) "Automated" else "Manual")
df1 <- structure(list(App = c(1L, 2L, 3L, 3L, 4L, 5L, 5L, 6L, 7L, 7L,
7L, 8L), Text = c("Hello", "Happening", "Sly", "?", "Hat", "Hello",
"Juice", "?", "Hello", "Happening", "?", "?")),
class = "data.frame", row.names = c(NA,
-12L))