我正试图根据数据框架中现有行中的具体观察结果,创建一些新的列。下面,我有几行作为一个代表性的例子。
test.df <- tibble(can=c("can1","can2","unmarked","invalid","blank"),
votes=c(177000,441000,11000,1300,20000))
在这里,我想保持 can
栏,但把 两者 的 unmarked
和 invalid
列,作为自己的新列。是否有办法根据观察类型来展开列的部分内容,例如 unmarked
或 invalid
?
我试过用 spread(can,votes)
,但这显然使两个候选人都有一列,这并不理想。
在此感谢任何帮助。谢谢您的帮助
我可以帮你完成大部分的工作。在不知道你的用例的情况下,我不知道你到底想对未标记或无效的数据做什么。我假设你的数据要大得多。这将让你只得到罐头和投票,但由于pivot_longer将匹配未标记和无效的行中的值,它填充。
library(tidyverse)
test.df %>%
pivot_wider(names_from = "can",
values_from = "votes") %>%
pivot_longer(c("can1", "can2", "blank"),
names_to = "can",
values_to = "votes")