最近在試圖做一個產(chǎn)品路徑的數(shù)據(jù)處理,邏輯是對同一個 id,'target' 字段取下一行的 ‘item’ 值,代碼如下:
id <- c('1001','1001','1001','1002','1002','1003','1003','1003','1003')
item <- c('milk','bread','cake','milk','sugar','bread','cake','cafe','milk')
df1 <- data.frame(id, item, stringsAsFactors = F)
for (i in c(1:length(df1$id-1))
if(df1$id[i+1]==df1$id[i]df1$id)df1target[i] <- df1$item[i+1]
else(df1$item[i+1]else(df1target <- NA)
}
得到錯誤提示:argument is of length zero
希望得到:
id? ?? ?? ? item? ?? ???target
1001? ???milk? ?? ?? ?bread
1001? ???bread? ?? ? cake
1001? ???cake? ?? ?? ?NA
1002? ???milk? ?? ?? ?sugar
1002? ???sugar? ?? ? NA
1003? ???bread? ?? ? cake
1003? ???cake? ?? ?? ?cafe
1003? ???cafe? ?? ?? ?milk
1003? ???milk? ?? ?? ? NA
解決方法:
用括號把 (length(df1id?1)括起來了變成1:(length(df1id)-1), 這樣結(jié)果就得到 1 2 3 4 5 6 7 8,避免了從 0 開始的報錯了??








暫無數(shù)據(jù)