這裏是什麼,我想做一個要點:半徑誤差:一個向量長度錯誤,應該是2
我有2個數據幀:
X(ID是唯一的)
id timestamp
282462839 2012-12-05 10:55:00
282462992 2012-12-05 12:08:00
282462740 2012-12-05 12:13:00
282462999 2012-12-05 12:48:00
Y(ID不是唯一的)
id value1 value2
282462839 300 100
282462839 300 200
282462839 400 300
282462999 500 400
282462999 300 150
我也有一個功能MYFUNC(ID,p值),其計算的東西,根據P值和其他value1s(比更復雜的返回值2值之一隻是pvalue == value1)
我想爲包含相應的計算的myfunc(id,pvalue)的x創建第3列,其中pvalue是一個常量(比如20)的整數。
所以在本質上,我想這樣做:
x$t20 <- myfunc(x$id,20)
我嘗試使用lappy上和sapply這樣:
x$t20 <- sapply(as.vector(x$id),myfunc,pvalue=20)
我使用lapply並沒有as.vector嘗試爲好,但我一直得到這個錯誤:
Error in .pointsToMatrix(p2) : Wrong length for a vector, should be 2
它的工作原理時,我只是表示它只是複製$ t20中的$ id。
我該怎麼做?
編輯1: 這裏MYFUNC的骨架:
myfunc <- function(xid,pvalue) {
result <- subset(y,id==xid)
retVal <- -1
if(nrow(result) < 12){
return(NaN)
}
for(i in (1:nrow(result))){
#code to process result
}
return(retVal)
}
如果你的函數'myfunc'是矢量化的'x $ t20 < - myfunc(x $ id,20)'應該返回你想要的。 – DrDom
如果我這樣做,它會給我一個錯誤: .pointsToMatrix(p2)中的錯誤:向量的長度錯誤,應該是2 另外:警告消息: 在id == xid: 較長的對象長度不是短物體長度的倍數。 我的實際定義是MYFUNC(XID,p值) 有一條線在那裏我做: 結果< - 子集(Y,ID == XID) 我試圖改變它XID [1],但仍然給了向量長度應該是2個錯誤 – orderof1
看來問題出在功能上,請編輯你的文章並添加'myfunc'的代碼。 – DrDom