我看到很多关于这方面的问题,但在我的特殊情况下没有任何作用。我正在构建将某些列从长到宽旋转的功能。它传播因子,以便它们可以转换为整数(标志)。在里面我使用函数spread()
来获取要传播的列的名称。我尝试了所有我能找到的组合,但没有任何效果。这个函数将是可重用的,并且可以一次性旋转不同的列。所以传递列名是必不可少的。
这是我尝试过的许多不起作用的技巧之一:key = dataFrame[, columnName]
inside of spread()
. (函数体的最后一行)
这是功能代码:
pivotColumn <- function(dataFrame, columnName) {
as.data.frame(dataFrame %>%
group_by_( .dots = names(dataFrame)[1:ncol(dataFrame)] ) %>%
tally %>% dplyr::rename(temporary = n) %>%
spread( key = dataFrame[, columnName], value = "temporary", fill = ""))
}
如果有人想使用此功能,则需要添加具有唯一值的虚拟列,否则某些观察结果将作为重复项被删除。操作后可以拆下柱子。(我是在清洗开始的时候做,最后拆掉)。