私は私のものと非常によく似た多くの質問を見てきましたが、私が見た答えのどれも私がやろうとしていることを実際に解決していません。データフレームのリストがあり、リストdigest()
内の各データフレームの同じ列に関数を適用しようとしています。これに対するSOで私が見た答えのいくつかは次のとおりです。
dflist <- list(data.frame(number = 1:10, name = 1:10),
data.frame(number = 2:15, name = 1:14))
dflist <- lapply(dflist, function(x){
x$name <- digest(x$name, algo = "sha256")
return(x)
})
#OR this
dflist <- lapply(dflist, function(x) {
x %>% mutate_each(funs(digest(.,algo = "sha256")), "name")
})
これらは両方とも同じ出力を提供しname
ます。つまり、列のすべての行が同じ正確な値を持っているだけです。このdigest()
関数は機能しますが、すべての行の最初の行の値のみを返します。
私も試しました:
dflist <- lapply(dflist, function(x) {
digest(x[,"name"], algo = "sha256")
})
ただし、これはリスト内の各データフレームから最初の値のみを返します。
アドバイスをいただければ幸いです。
digest
ベクトル化されていません
dflist1 <- lapply(dflist, function(x) {
x$name <- Vectorize(digest::digest)(x$name, algo = "sha256")
x
})
またはでそれを使用してください transform
dflist1 <- lapply(dflist, transform, name = Vectorize(digest::digest)(name))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加