我正在处理R中的一些数据,这些数据基于数据框中的注释生成了类别数据列。
注释分散在每一行的多列中,因此需要对每个注释进行分类。类别列的结果如下所示:
<xsl:template match="list">
<xsl:for-each-group select="element" group-adjacent="(position() - 1) idiv 5">
<xsl:result-document href="bic-{position()}.txt" method="text">
<xsl:value-of select="current-group()" separator=""/>
</xsl:result-document>
</xsl:for-each-group>
</xsl:template>
在这些行中,我只需要保留唯一值(删除重复项)。我不想删除整个行或整个列,只需将行中的重复项转换为空白即可。因此,新示例如下所示:
Category1 Category2 Category3 Category4
No change Presentation Changed Presentation Changed No change
No change No change Scroll Changed
请让我知道是否有其他有关解决此问题的代码或表的详细信息。谢谢!
答案 0 :(得分:0)
以下是使用tidyverse
软件包的解决方案:
library(tidyverse)
data <-
tibble(
Category1 = c('No change', 'No change'),
Category2 = c('Presentation Changed', 'No change'),
Category3 = c('Presentation Changed', 'Scroll Changed'),
Category4 = c('No change', '')
)
data %>%
mutate(id = row_number()) %>%
gather(Category, Value, -id) %>%
group_by(id, Value) %>%
mutate(cnt = n()) %>%
group_by(id, Value) %>%
mutate(dup = row_number()) %>%
ungroup() %>%
mutate(Value = if_else(cnt > 1 & dup > 1, '', Value)) %>%
select(id, Category, Value) %>%
spread(Category, Value)