這是一個非常簡單的問題,我也問this link使用data.table中的函數更新變量?
一個比較複雜的一個在這個環節,羅蘭好心給了一個非常優雅的解決我的問題。但我想弄清楚爲什麼我的解決方案無法正常工作。
DT <- data.table(UID = paste0("UID",rep(1:5,each=2),
date = as.IDate("2012-01-01","2012-01-02","2012-01-03","2012-01-04","2012-01-05","2012-01-06","2012-02-01","2012-02-02","2012-02-03","2012-02-04"),
value = c(1:10)))
這是假的數據集。
現在我想創建基於以下條件名爲VAL2一個新的變量:
**無論各行的日期沒有「2012-01-02」,「2012-02-02」。
要做到這一點,我想這
1. f <- function(x){
test <- ifelse(x %in% as.Date(c("2012-01-02","2012-02-02")) , TRUE, FALSE)
return(test)
}
DT[,Val2:= f(date)]
但所有VAL2是真實的,這顯然是錯誤的。
正如羅蘭在我以前的問題中指出的那樣,我嘗試了另一個問題。
DT[, Val2:= sapply(date, function(x) x %in% as.Date(c("2012-01-02","2012-02-02")))]
還沒出現以下錯誤工作:
錯誤as.Date.default(X,...): 不知道如何轉換的 'x' 上課吃?
另外我試圖根據錯誤提示進行修改,但都失敗了。
你能提供一些建議嗎?謝謝!
你的代碼來構建'DT'的格式不正確。請修復它。 –
謝謝馬修:)已經修好 – Bigchao
我不同意。從問題粘貼到您的R解釋器中。 –