【问题标题】:Getting output having quotes and no quotes获取带引号和不带引号的输出
【发布时间】:2019-10-11 18:37:51
【问题描述】:

所需输出

c('A'=5,'B'=5,'C'=5)

得到了什么

df1 <- factor(LETTERS[1:3])
paste(levels(df1), 5, sep = "=")
#> [1] "A=5" "B=5" "C=5"

noquote(capture.output(cat(paste(shQuote(levels(df1)), 5, sep = "="), sep = ",")))
#> [1] 'A'=5,'B'=5,'C'=5

请帮助获得所需的输出。

【问题讨论】:

  • @RonakShah:不,它没有提供所需的输出。
  • 感谢@RonakShah 的有用评论。请更改您的评论以回答。谢谢

标签: r paste quotes factors


【解决方案1】:

我们可以使用setNames 来命名向量并使用rep 来创建数字向量。

setNames(rep(5, length(df1)), df1)

#A B C 
#5 5 5 

【讨论】:

  • 感谢@RonakShah 的帮助。我再问一个问题here
【解决方案2】:
ltrs <- LETTERS[1:3]
nbrs <- c(5,5,5)
names(nbrs) = ltrs
nbrs %>% dput

【讨论】:

  • 感谢@Andreé 的回答。您给定的代码给出了输出c(A = 5, B = 5, C = 5)。但是,所需的输出是c('A'=5,'B'=5,'C'=5)。请有任何想法。
【解决方案3】:

我们可以使用replicate

setNames(replicate(length(df1), 5), df1)
# A B C      
# 5 5 5 

或者更简洁

library(tibble)
deframe(tibble(df1, 5))
#   A B C 
#  5 5 5 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    相关资源
    最近更新 更多