全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4133 11
2013-12-17
请帮我看看数据框取子集的问题怎么搞?
data4是包含三列的数据框,我想知道这个数据框中x和y值都一样的行数是哪几行?(此时不考虑father值)例如七行和九行值一样,就得到七和九的行数。这里应该有三组是一样的,应返回六个下标。
> data4
    y  x father
2  17 15      1
4  18 14      1
8  19 15      1
21 17 16      2
81 19 16      2
22 17 17      3
62 18 18      3
82 19 17      3
23 18 18      4
43 19 17      4
83 20 18      4
24 18 19      5
84 20 19      5
25 18 20      6
85 20 20      6
26 18 21      7
66 19 22      7
86 20 21      7
27 19 22      8
47 20 21      8
87 21 22      8
28 19 23      9
88 21 23      9
29 19 24     10
69 20 25     10
89 21 24     10
代码是
x<-c(0,40)
y<-c(0,40)
par(bg="gray")
plot(x,y,type="n",xlab="",ylab="")
for(x in 0:40){for(y in 0:40)
rect(x-.5,y-.5,x+.5,y+.5)}
points(c(15,24),c(18,20),pch=21,bg="yellow")
x[1]=15
y[1]=18
x2=24
y2=20
m=max(abs(y2-y[1]),abs(x2-x[1]))
n=m+1
addy=(y2-y[1])/m
addx=(x2-x[1])/m
i=2
for(i in 2:n){x[i]=x[1]+(i-1)*addx
y[i]=y[1]+(i-1)*addy
y[i]=round(y[i])}
data<-data.frame(y=y,x=x)
data2=data.frame(x=NULL,Y=NULL,father=NULL)
for(i in 1:10){x<-rep(c((data[i,]$x-1):(data[i,]$x+1)),3)
y<-rep(c((data[i,]$y-1):(data[i,]$y+1)),each=3)
data1<-data.frame(y=y,x=x,father=rep(NA,9))
for(j in 1:9){if (sqrt((data1[j,]$x-data[i,]$x)^2+(data1[j,]$y-data[i,]$y)^2)<=1)
{rect(data1[j,]$x-.5,data1[j,]$y-.5,data1[j,]$x+.5,data1[j,]$y+.5,col="green")
data1[j,]$father=i
data2=data.frame(rbind(data2,data1[j,]))
}
data3=unique(data2)
}}
b=NULL
for(i in 1:dim(data)[1]){
  for(j in 1:dim(data3)[1]){
    if(data3[j,1]==data[i,1]&data3[j,2]==data[i,2])
       b=c(b,j)
         }
}
data4=data3[-b, ]

二维码

扫码加我 拉你入群

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

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

全部回复
2013-12-17 15:38:05
复制代码
这样吗?
二维码

扫码加我 拉你入群

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

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

2013-12-17 15:46:09
ywh19860616 发表于 2013-12-17 15:38
这样吗?
不是,是i行中的x和y分别等于j行中的x和y值。得到i 和 j的行号
二维码

扫码加我 拉你入群

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

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

2013-12-17 15:46:41
ywh19860616 发表于 2013-12-17 15:38
这样吗?
谢谢回帖。
二维码

扫码加我 拉你入群

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

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

2013-12-17 17:55:36
我怎么发现了四组?
二维码

扫码加我 拉你入群

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

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

2013-12-17 17:59:55
你试试这个
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群