2017-05-01 16 views
0

我是R中的新手,我嘗試在我的數據集中散列幾列。我們正在將數據導出到CSV文件,並且出於隱私原因需要散列一些列。在for循環中使用R openssl包裝散列

當我使用下面的語句(與openssl包)時,我有它的工作(哈希)。

df$field1 <- sha256(df$field1, key=sleutel) 

它使用sha256從data.frame中散列field1。密鑰(sleutel)是在幾行之前生成的。這條線給了我想要的結果。

我們有很多導出,並且需要散列的字段在數據庫中可用。我可以在「to_encrypt」變量(class = character)中讀取這些字段。

我想在循環中使用它們,但似乎不起作用。我的循環是這樣的:

for (i in to_encrypt){ 
    i <- paste("df$",i,sep="") 
    i <- sha256(i, key=sleutel) 
} 

我會認爲這應該工作。沒有錯誤,但字段(本例中爲field1)不被散列。

任何想法?

回答

0

使用paste("df$",i,sep=""),並不意味着您將使用您想要的df$field1df$field2等列。相反,提取並重新分配該列與[[

for (i in to_encrypt){ 
    df[[i]] <- sha256(df[[i]], key=sleutel) 
} 
+0

謝謝,工作,將仔細研究使用[[ – Jeroen