为什么我从 Alteryx R 工具得到不同的输出
Why am I getting different output from the Alteryx R tool
我使用 Alteryx R 工具签署亚马逊 http 请求。为此,我需要 digest 包中包含的 hmac 函数。
我正在使用包含密钥和日期戳的文本输入工具。
Key= "foo"
datastamp= "20120215"
问题来了。当我 运行 以下脚本时:
the.data <- read.Alteryx("1", mode="data.frame")
write.Alteryx(base64encode(hmac(the.data$key,the.data$datestamp,algo="sha256",raw = TRUE)),1)
与我 运行 以下内容相比,我得到的结果不正确:
write.Alteryx(base64encode(hmac("foo","20120215",algo="sha256",raw = TRUE)),1)
不同之处在于,当我对键和对象的值进行硬编码时,我得到了正确的结果。但是如果使用 R 数据框中的变量,我会得到不正确的输出。
数据框是否以某种方式改变了数据。在 Alteryx 中使用 R 工具时,有人遇到过这个问题吗?
感谢您的意见。
问题似乎是在创建数据框时,您的字符变量被转换为因子。使用 data.frame
构造函数解决此问题的方法是
the.data <- data.frame(Key="foo", datestamp="20120215", stringsAsFactors=FALSE)
我没有使用过 read.Alteryx
,但我认为它有类似的实现方式。
或者,如果您的数据框已经创建,您可以将因子转换回字符:
write.Alteryx(base64encode(hmac(
as.character(the.data$Key),
as.character(the.data$datestamp),
algo="sha256",raw = TRUE)),1)
我使用 Alteryx R 工具签署亚马逊 http 请求。为此,我需要 digest 包中包含的 hmac 函数。
我正在使用包含密钥和日期戳的文本输入工具。
Key= "foo"
datastamp= "20120215"
问题来了。当我 运行 以下脚本时:
the.data <- read.Alteryx("1", mode="data.frame")
write.Alteryx(base64encode(hmac(the.data$key,the.data$datestamp,algo="sha256",raw = TRUE)),1)
与我 运行 以下内容相比,我得到的结果不正确:
write.Alteryx(base64encode(hmac("foo","20120215",algo="sha256",raw = TRUE)),1)
不同之处在于,当我对键和对象的值进行硬编码时,我得到了正确的结果。但是如果使用 R 数据框中的变量,我会得到不正确的输出。
数据框是否以某种方式改变了数据。在 Alteryx 中使用 R 工具时,有人遇到过这个问题吗?
感谢您的意见。
问题似乎是在创建数据框时,您的字符变量被转换为因子。使用 data.frame
构造函数解决此问题的方法是
the.data <- data.frame(Key="foo", datestamp="20120215", stringsAsFactors=FALSE)
我没有使用过 read.Alteryx
,但我认为它有类似的实现方式。
或者,如果您的数据框已经创建,您可以将因子转换回字符:
write.Alteryx(base64encode(hmac(
as.character(the.data$Key),
as.character(the.data$datestamp),
algo="sha256",raw = TRUE)),1)