多年來,我是使用 SPSS 的 R 新手。
我的資料列是。
"ffqnum" "tot_wt" "ffq_name" "foodcode" "foodname" "nut203" "nut204" "nut205" "nut208"
num double char num char double double double double
我sapply用來計算 4 列的新值
ffq2 <- sapply(ffq116[, c(6:num_col)] ,function(i) i * ffq116$tot_wt)
ffq2 = data.frame(ffq2)
新資料框只有 4 列
"nut203" "nut204" "nut205" "nut208"
我正在尋找如何解決流動任務的建議:有沒有一種方法可以使用sapply或其他方法將列“ffqnum”“tot_wt”“ffq_name”“foodcode”“foodname”回傳到計算資料框中。有沒有辦法向新資料框添加鍵列。我知道我可以使用回圈,但可以使用sapply.
uj5u.com熱心網友回復:
您需要重新分配回相應的列。
ffq116[c(6:num_col)] <- sapply(ffq116[c(6:num_col)], function(i) i * ffq116$tot_wt)
我認識到這會覆寫您的 版本ffq116,您可能更喜歡先復制它,ffq2 <- ffq116然后再對該幀進行操作。
uj5u.com熱心網友回復:
您可以使用tidyverse動詞并嘗試以下代碼:
library("tidyverse")
ffq2 <- ffq116 %>% mutate_at(.vars = vars(starts_with("nut")), .funs = ~ . * tot_wt)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/420146.html
標籤:
下一篇:功能失敗為什么?
