gpt4 book ai didi

R:如何阻止看门人中的装饰函数更改次要字符列?

转载 作者:行者123 更新时间:2023-12-04 12:18:50 25 4
gpt4 key购买 nike

下面是我遇到的例子

library(tidyverse)
library(janitor)

x <- data_frame(c1=c('a','a','b','b'),
c2=c('a','b','c','d'),
c3=runif(4,0,10),
c4=runif(4,10,20),
c5=runif(4,20,100))

x %>%
adorn_totals(c('col')) %>%
adorn_percentages('row') %>%
adorn_pct_formatting() %>%
adorn_ns('front')

运行此代码会提供以下输出:

 c1    c2                c3               c4               c5              Total
a a (a) 1.0495149 (1.2%) 12.78693 (15.0%) 71.48728 (83.8%) 85.32373 (100.0%)
a b (b) 0.9217471 (0.9%) 19.71064 (20.1%) 77.67327 (79.0%) 98.30566 (100.0%)
b c (c) 9.0695540 (19.4%) 14.39917 (30.8%) 23.32479 (49.8%) 46.79351 (100.0%)
b d (d) 8.9398517 (7.8%) 18.53542 (16.1%) 87.43437 (76.1%) 114.90965 (100.0%)

如您所见,列 c2 只是另一个字符列,因此不应受到 adorn_ 函数的影响,但正如我从 adorn_pct_formatting adorn_ns 它以意想不到的方式改变了该列。

有谁知道如何在保持我下面相同的一般方法的同时防止这种情况发生;意思是我继续使用 janitor 中的 adorn_ 函数?

我知道并且能够编写代码来手动计算 N 和 %s 并将其粘贴到每个特定的列中,但我正在寻找一种方法来使用此处提供的函数(如果可能)来完成此操作。

谢谢。

最佳答案

我无法找到一种机制来防止 Janitor 装饰字符列。

还有a bug logged在 Janitor repo 上讨论了字符列的装饰。

我的解决方案是在装饰函数之后通过使用 stringr::strsplit 拆分字符串来处理字符列。

library(stringr)

df %>%
mutate(character_col = sapply(strsplit(character_col, "\\s\\(" ), [, 1))

我希望这对遇到此问题的其他人有用。

关于R:如何阻止看门人中的装饰函数更改次要字符列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52669770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com