在R中把几个观测值移到新行?[已关闭]

问题描述 投票:0回答:1

我正试图根据数据框架中现有行中的具体观察结果,创建一些新的列。下面,我有几行作为一个代表性的例子。

test.df <- tibble(can=c("can1","can2","unmarked","invalid","blank"),
             votes=c(177000,441000,11000,1300,20000))

在这里,我想保持 can 栏,但把 两者unmarkedinvalid 列,作为自己的新列。是否有办法根据观察类型来展开列的部分内容,例如 unmarkedinvalid?

我试过用 spread(can,votes),但这显然使两个候选人都有一列,这并不理想。

在此感谢任何帮助。谢谢您的帮助

r data-manipulation spread
1个回答
1
投票

我可以帮你完成大部分的工作。在不知道你的用例的情况下,我不知道你到底想对未标记或无效的数据做什么。我假设你的数据要大得多。这将让你只得到罐头和投票,但由于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") 
© www.soinside.com 2019 - 2024. All rights reserved.