我有看起來像這樣sx16數據幀的數據幀:R:添加減去在每行中的單個列較短長度的柱,第一 - 第二,第二 - 第三
櫃面鏈接不工作:
數據幀被稱爲sx16
它的列名: 日期,開盤,高,低,結算
我要添加一個名爲up_period列打印1,如果低於計算值是正的和0,如果低於計算值是負的:
sx16$Settle[ 1: nrow(sx16)] - sx16$Settle[ 2: nrow(sx16)]
當然,作爲新的列表比短此產生一個錯誤原來的sx16。
我試圖圍繞它rbind.fill包裹,像這樣:
sx16$up_period <- rbind.fill(sx16$Settle[ 1: nrow(sx16)] - sx16$Settle[ 2: nrow(sx16)])
但是,這會產生以下錯誤:
Warning message: In sx16$Settle[1:nrow(sx16)] - sx16$Settle[2:nrow(sx16)] : longer object length is not a multiple of shorter object length
當然,這正是我想rbind.fill將解決。這裏是我卡住的地方。一旦我得到這個,我可以添加一個簡單的if-else來做1和0,但我不知道如何將這個較短的列添加到我的數據框中。
歡迎來到SO。請閱讀[如何提出問題](http://stackoverflow.com/help/how-to-ask)和[如何製作可重現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – Sotos
使用樣本數據:iris $ Sepal.Length [1:(nrow(iris)-1)] - iris $ Sepal。長度[2:nrow(虹膜)]將處理除最後一個以外的所有值 –
@OliPaul以及它們將如何將其綁定到數據框?它少了一排。所有的跡象都出來了(試試'iris $ Sepal.Length -c(NA,iris $ Sepal.Length [1:nrow(iris) - 1])) – Sotos