2

我看到很多关于这方面的问题,但在我的特殊情况下没有任何作用。我正在构建将某些列从长到宽旋转的功能。它传播因子,以便它们可以转换为整数(标志)。在里面我使用函数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 = ""))

}

如果有人想使用此功能,则需要添加具有唯一值的虚拟列,否则某些观察结果将作为重复项被删除。操作后可以拆下柱子。(我是在清洗开始的时候做,最后拆掉)。

4

0 回答 0