7
下面是一個包含用戶ID的列中的數據幀:爲什麼每次使用dplyr的mutate時,digest函數都會返回相同的值?
> head(df)
uid
1 14070210
2 14080815
3 14091420
對於參數的緣故,我要創建包含用戶ID的平方根一個新的列,以及包含的散列另一個新列用戶標識。所以我這樣做:
df_mutated <- df %>%
mutate(sqrt_uid = sqrt(uid), hashed_uid = digest(uid))
...其中digest()來自摘要包。
儘管平方根似乎有效,但摘要函數爲每個用戶ID返回相同的值。
> head(df_mutated)
uid sqrt_uid hashed_uid
1 14070210 3751.028 f8c4b39403e57d85cd1698d2353954d0
2 14080815 3752.441 f8c4b39403e57d85cd1698d2353954d0
3 14091420 3753.854 f8c4b39403e57d85cd1698d2353954d0
這對我來說很奇怪。沒有dplyr,digest()函數爲不同的輸入返回不同的值。我不瞭解dplyr?
感謝
妙傳,太感謝你了。我來自python/pandas,所以我以某種方式假定mutate()像panda的.apply()方法一樣工作,其中傳遞的函數將單獨作用於每個元素。 – csaid 2015-02-06 16:12:13
很好的答案。我只是將'vdigest < - Vectorize(摘要)'的想法添加到'digest'的幫助頁面。 – 2017-02-20 13:20:43