【问题标题】:sink produces weird characterssink 产生奇怪的字符
【发布时间】:2021-10-12 21:50:56
【问题描述】:

我正在使用接收器将我的输出粘贴到文本文件中:在此示例中使用 gss 数据。

library(gss)
library(infer)

con <- file(paste0(dir_output, "test.txt"),encoding = "UTF-8")
sink(con, split = T)

cols <- gss %>% select(where(is.factor)) %>% select(-sex) %>% names(.)
out <- vector('list', length(cols))
names(out) <- cols
for(i in cols) {
  out[[i]] <- prop_test(gss, reformulate("sex", response = i))
  print(out[i])
}
sink(file = NULL)

输出在 R 控制台中打印良好,但奇怪地打印到文本文件中。知道为什么会发生这种情况吗?这是文本文件中的输出...

$college
[38;5;246m# A tibble: 1 x 6[39m
  statistic chisq_df p_value alternative lower_ci upper_ci
      [3m[38;5;246m<dbl>[39m[23m    [3m[38;5;246m<dbl>[39m[23m   [3m[38;5;246m<dbl>[39m[23m [3m[38;5;246m<chr>[39m[23m          [3m[38;5;246m<dbl>[39m[23m    [3m[38;5;246m<dbl>[39m[23m
[38;5;250m1[39m 0.000[4m0[24m[4m2[24m[4m0[24m4        1   0.996 two.sided    -[31m0[39m[31m.[39m[31m0[39m[31m91[4m7[24m[39m    0.101

$partyid
[38;5;246m# A tibble: 1 x 3[39m
  statistic chisq_df p_value
      [3m[38;5;246m<dbl>[39m[23m    [3m[38;5;246m<dbl>[39m[23m   [3m[38;5;246m<dbl>[39m[23m
[38;5;250m1[39m      12.9        3 0.004[4m8[24m[4m4[24m

【问题讨论】:

  • 您正在尝试编写 prop_test。它不会像你看到的那样写。您将必须捕获输出并相应地对其进行分类
  • prop_test() 函数使用什么包?这不是基本的 R 函数。看起来有一个自定义 print() 函数正在尝试进行格式化。可能有一个选项可以在某处禁用它。如果您包含一个简单的reproducible example 以及可用于测试和验证可能的解决方案的示例输入,那么为您提供帮助会更容易。

标签: r sink


【解决方案1】:

我猜问题是您正在使用包crayon 使控制台中的输出更具可读性。 为了让那些奇怪的字符在你的文本文件中消失,你需要在脚本的开头插入这行代码来修改options

options(crayon.enabled = FALSE,"crayon.colors" = 1)

缺点是你失去了控制台中的颜色,但我从来没有找到更好的解决方案......

如果您想在任何时候将颜色放回控制台,您必须输入以下代码行:

options(crayon.enabled = TRUE,"crayon.colors" = 8)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多