gpt4 book ai didi

r dplyr transmute_字符串输入错误

转载 作者:行者123 更新时间:2023-12-02 02:46:10 25 4
gpt4 key购买 nike

给定一个数据帧和一个包含要在列上执行的操作的字符串:

myDF <- as.data.frame(cbind(c(1,2,3,4),c(1,2,3,4),c(1,2,3,4)))
myString <- 'Added = V1 + V2'

调用“transmute_()”将为我提供所需的输出:

transmute_(myDF,myString)

输出:

  Added = V1 + V2
1 2
2 4
3 6
4 8

到目前为止非常棒!但如果我立即重复相同的“transmute_()”函数,我会收到错误。

transmute_(myDF,myString)
Error: invalid (do_set) left-hand side to assignment

更改输入字符串的列名称仍然会产生相同的错误,并且将相同的字符串存储在不同的变量中也会出现同样的错误。但是,如果我更改新的列名称,它会第一次再次工作,然后出现错误(请参阅下面的示例)。

我不知道为什么会这样。似乎输出的临时版本存储在某处,错误是对此的 react ,但我以前从未遇到过类似的情况。任何有助于理解它并解决它的帮助(除了新列的明显重命名之外)将不胜感激。

谢谢!

myString <- 'Added = V1 + V3'
transmute_(myDF,myString)
Error: invalid (do_set) left-hand side to assignment

myString2 <- 'Added = V1 + V3'
transmute_(myDF,myString2)
Error: invalid (do_set) left-hand side to assignment

myString2 <- 'Added_2 = V1 + V3'
transmute_(myDF,myString2)
Added_2 = V1 + V3
1 2
2 4
3 6
4 8

最佳答案

mutate_ 也有同样的问题,但查看代码是因为 transmute_ 调用了 mutate_。这在 dplyr 中并不是一个严重的错误,但在 dplyr github 页面上提出了一个问题。请参阅github issue 315

运行transmute_(myDF,myString)后,您可以看到Added在基础环境中可用。只需键入它(或base::Added),您就会看到该对象和已创建的值。当您再次调用代码行时,这会导致问题。

有关更多详细信息,请阅读 github issue 315 上的评论作者:罗曼·弗朗索瓦和哈德利·威克姆

关于r dplyr transmute_字符串输入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40642344/

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