如何在 r 中的列上使用摘要库
How to use the digest library on a column in r
我在使用这个时遇到错误:
for (i in nrow(df$uuid)){df$uuid[[,i]] <- (digest(df$uuid[i,], algo=c("sha256")))}
Error in 1:nrow(s12$uuid) : argument of length 0
向量没有 nrow
值,只有 length
值:
x <- 1:10
nrow(x)
#> NULL
这包括包含在数据框中的向量:
df <- data.frame(x = 1:10)
nrow(df$x)
#> NULL
而数据框本身有一个nrow
(行数)和一个length
(列数):
nrow(df)
#> [1] 10
length(df)
#> [1] 1
迭代时您需要小心,您正在沿着正确实体的正确“维度”进行迭代。在你的情况下,这意味着你应该给 for
循环你的数据帧 或 其向量之一的 length
(两者将是相同的),但 不是 其向量之一的 nrow
,因为那将是 NULL
.
不清楚 len
在您的示例中的作用 - 这是您拥有的功能 pre-defined 吗?它只是 nrow
的同义词吗?
你的问题中没有显示你的数据结构,所以让我们举一个非常简单的例子。我们将为“数据”创建一个 uuid
列,并为散列创建一个空列。
df <- data.frame(uuid = c("hello", "world"))
df$hash <- character(nrow(df))
为了填充散列列,我们这样做:
for(i in 1:nrow(df)) df$hash[i] <- digest::digest(df$uuid[i], algo = "sha256")
这导致:
#> uuid hash
#> 1 hello 5d3c36bc8d42c8b679ba1ef4ef3c2bf7674fc42ae33a474b9ac1a032a24b9b1d
#> 2 world c2269227fa81bc9731bedddfe41594c00e3be9327e33339053ebc395adb4fa76
我在使用这个时遇到错误:
for (i in nrow(df$uuid)){df$uuid[[,i]] <- (digest(df$uuid[i,], algo=c("sha256")))}
Error in 1:nrow(s12$uuid) : argument of length 0
向量没有 nrow
值,只有 length
值:
x <- 1:10
nrow(x)
#> NULL
这包括包含在数据框中的向量:
df <- data.frame(x = 1:10)
nrow(df$x)
#> NULL
而数据框本身有一个nrow
(行数)和一个length
(列数):
nrow(df)
#> [1] 10
length(df)
#> [1] 1
迭代时您需要小心,您正在沿着正确实体的正确“维度”进行迭代。在你的情况下,这意味着你应该给 for
循环你的数据帧 或 其向量之一的 length
(两者将是相同的),但 不是 其向量之一的 nrow
,因为那将是 NULL
.
不清楚 len
在您的示例中的作用 - 这是您拥有的功能 pre-defined 吗?它只是 nrow
的同义词吗?
你的问题中没有显示你的数据结构,所以让我们举一个非常简单的例子。我们将为“数据”创建一个 uuid
列,并为散列创建一个空列。
df <- data.frame(uuid = c("hello", "world"))
df$hash <- character(nrow(df))
为了填充散列列,我们这样做:
for(i in 1:nrow(df)) df$hash[i] <- digest::digest(df$uuid[i], algo = "sha256")
这导致:
#> uuid hash
#> 1 hello 5d3c36bc8d42c8b679ba1ef4ef3c2bf7674fc42ae33a474b9ac1a032a24b9b1d
#> 2 world c2269227fa81bc9731bedddfe41594c00e3be9327e33339053ebc395adb4fa76