0
功能我有一個功能**:自動爲橫行數據框使用
do_thing <- function(x) {
return(x + runif(1, 0, 100))
}
,我想申請我的數據:
df <- tibble(x = 1:10)
最好有mutate
:
set.seed(1)
df %>%
mutate(y = do_thing(x))
但是,該功能未按預期執行:
# x y
# 1 1 27.55087
# 2 2 28.55087
# 3 3 29.55087
# 4 4 30.55087
# 5 5 31.55087
# 6 6 32.55087
# 7 7 33.55087
# 8 8 34.55087
# 9 9 35.55087
# 10 10 36.55087
其實我希望函數在一個橫行的方式適用於:
df %>%
rowwise() %>%
mutate(y = do_thing(x))
# x y
# 1 1 38.21239
# 2 2 59.28534
# 3 3 93.82078
# 4 4 24.16819
# 5 5 94.83897
# 6 6 100.46753
# 7 7 73.07978
# 8 8 70.91140
# 9 9 15.17863
# 10 10 30.59746
有沒有一種辦法,我也許能重寫我的功能,使得它非常靈活,可以自動默認,同時仍橫行使用單個輸入(即do_thing(100)
)?
** 實際功能是一個複雜得多
我的實際功能比'runif'複雜得多::( – emehex
@emehex對不起,這是一種向量化的方法。如果你的功能不靈活,改變原始選項沒有意義 – akrun