【发布时间】:2015-12-06 17:32:39
【问题描述】:
我正在努力实现以下目标(尽管我已经阅读了this vignette):
require(dplyr)
require(lazyeval)
# data looks like
df <- data.frame(col1 = c("entry1", "entry2"), col2 = c("0x12", "0xA1"))
# col1 col2
# 1 entry1 0x12
# 2 entry2 0xA1
# must be something like this:
dots <- list(df %>%
select(col2) %>%
distinct(col2))
df %>%
rowwise() %>%
mutate_(.dots = dots)
# target output
# col1 col2 0x12 0xA1
# 1 entry1 0x12 1 N/A
# 2 entry2 0xA1 N/A 1
所以我想生成一个以单元格条目命名的新列,然后将其设置为一个。这与我迄今为止发现的所有其他示例不同,其中输入列是动态选择的(例如here),或者他们没有使用数据框(but a data.table)。如果 N/A 是 0,它不会造成任何伤害,并为我节省了后处理步骤。
【问题讨论】:
-
我想这可以使用
spread即library(tidyr);df%>% mutate(ind=1, col3=col2) %>% spread(col3, ind)来完成 -
您的猜测是正确的 - 非常感谢!你想把它作为答案发布,以便你的努力得到一些分数吗?