• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

使用函数包括数据帧引用的外部函数错误

r 来源:Jae Hoon 3次浏览

我试图使用外部函数获取3D表面。并且我定义的函数在data.frame中引用列。以下是可重现的简要代码。使用函数包括数据帧引用的外部函数错误

的test.txt是

a b c 
    1 0 0 
    2 0 0 
    3 0 0 
    6 0 0 
    4 0 0 

和代码显示为错误

test<- read.table(file="test.txt",header=TRUE) 

testf<-function(q,w){ 
test$b<-q 
test$c<-w 
sum(test$b)+sum(test$c) 
} 

x<-seq(1,10,by = 1) 
y<-seq(0,30,by = 1) 

z<-outer(x,y,testf) 

结果是

Error in `$<-.data.frame`(`*tmp*`, "b", value = c(1, 2, 3, 4, 5, 6, 7, : 
replacement has 310 rows, data has 5 

5.stop(sprintf(ngettext(N, "replacement has %d row, data has %d", 
"replacement has %d rows, data has %d"), N, nrows), domain = NA) 

4.`$<-.data.frame`(`*tmp*`, "b", value = c(1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, ... 

3.`$<-`(`*tmp*`, "b", value = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ... 

2. FUN(X, Y, ...) 

1. outer(x, y, testf) 

功能本身似乎因为testf(1,1)的作品没有问题

> testf(1,1) 
[1] 10 

任何意见将不胜感激!


===========解决方案如下:

我觉得for loop只产生Z轴值


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)