gpt4 book ai didi

r - 粘贴数据框而不更改为因子水平

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

我有向量让我们说 a,b,c,d 如下:

 a <- c(1,2,3,4)
b <- c("L","L","F","L")
c <- c(11,22,33,44)
d <- c("Y", "N", "Y","Y")

我尝试使用 paste 来获得这个输出 (1):

paste(a,b,c,d, sep = "$", collapse = "%")
[1] "1$L$11$Y%2$L$22$N%3$F$33$Y%4$L$44$Y"

那我改成这个,比如说df:

df <- data.frame(a,b,c,d)

并得到这个输出(2):

paste(df, sep = "$", collapse = "%")
[1] "c(1, 2, 3, 4)%c(2, 2, 1, 2)%c(11, 22, 33, 44)%c(2, 1, 2, 2)"

我的问题是:(1) 有人可以向我解释为什么在 df 中将其元素更改为数字吗?(2) 有没有其他方法可以使用 df 获取输出 (1)?

最佳答案

paste 在其 ... 参数上运行 as.character (或内部类似的东西),有效地解析列表。来看看

as.character(df)
# [1] "c(1, 2, 3, 4)" "c(2, 2, 1, 2)" "c(11, 22, 33, 44)" "c(2, 1, 2, 2)"
deparse(df$a)
# [1] "c(1, 2, 3, 4)"

您的代码将这些值粘贴在一起。为了解决这个问题,您可以使用 do.call

do.call(paste, c(df, sep = "$", collapse = "%"))
# [1] "1$L$11$Y%2$L$22$N%3$F$33$Y%4$L$44$Y"

关于r - 粘贴数据框而不更改为因子水平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50478551/

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