全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
17295 7
2017-02-07
以下是我的程序,
> mydata<-read.csv("E:/data/cangshan/rtest2.csv")
> clean<-mydata[-which(is.na(mydata)),]
> inside<-clean[clean$range==1,]
> outside<-clean[clean$range==0,]
> diff.slope<-vector()
> for (i in 1:nrow(inside)){
+     diff.slope<-cbind(diff.slope,abs(inside$slope-outside$slope))
+ }
> diff.slope<-t(diff.slope)
> diff.dem<-vector()
> for (i in 1:nrow(inside)){
+     diff.dem<-rbind(diff.dem,abs(inside$dem-outside$dem))
+ }
> diff.settlement<-vector()
> for (i in 1:nrow(inside)){
+     diff.settlement<-rbind(diff.settlement,abs(inside$settlement-outside$settlement))
+ }
> diff.road<-vector()
> for (i in 1:nrow(inside)){
+     diff.road<-rbind(diff.road,abs(inside$road-outside$road))
+ }
> whole.matrix<-diff.slope+diff.dem+diff.settlement+diff.road
> diff.sort<-sort(whole.matrix)
> pair.index<-vector()
> for ( j in 1:length(diff.sort)){
+     pair.index<-rbind(pair.index,which(whole.matrix==diff.sort[j],arr.ind = T))
+ }
>
> a<-pair.index[!duplicated(pair.index[,1]),]
运行到这里,便提示Error in pair.index[, 1] : subscript out of bounds。

尝试将样本量缩小,依然不行,应该不是数据的问题啊。
请R语言大师指导小妹,跪谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-2-7 11:29:20
自己顶一个,上网搜了一大圈,竟有很多人都有“下标出界”的问题,而且很多没有解决,真希望能有热心的大神帮忙指点一二。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-2-7 12:19:45
有点乱,能不能再好好编辑一下?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-2-7 21:05:51
I guess you need "<<-" instead of "<-" in your for-loop.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-2-9 15:52:24
谢谢各位,经大师指点,问题已经解决,是第二个语句有问题,改为clean = na.exclude(mydata),就运行成功了,这其中的道理我还得再学习学习,现在属于大菜鸟级别。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-2-19 22:56:39
可以请教下 为什么 改成=  就行了呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群