我得到一個錯誤使用這個:
for (i in nrow(df$uuid)){df$uuid[[,i]] <- (digest(df$uuid[i,], algo=c("sha256")))}
1:nrow(s12$uuid) 中的錯誤:長度為 0 的引數
uj5u.com熱心網友回復:
向量沒有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回圈nrow你的資料框或它的length向量之一(兩者都是相同的),但不是它的nrow向量之一,因為那將是NULL.
目前尚不清楚len您的示例中做了什么 - 這是您預定義的函式嗎?它只是 的同義詞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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/452308.html
