我有一个包含两列的数据框(数据并不总是相同)。
1 1
2 2
3 3
0 0
-1 -1
-2 -2
-3 -3
我想要做的是为列的前10%和列的底部10%创建另一列,以用作散点图的标签。
1 1
2 2
3 3 1
0 0
-1 -1
-2 -2
-3 -3 2
此外,它需要能够从顶部/底部10%的任一列中选择和标记
有什么想法吗?
答案 0 :(得分:4)
你的问题有点含糊不清。什么“jpeg输出中使用的规模”。意思?两列是否始终相同?也许您正在寻找以下内容:
> dat<-data.frame(a=c(-(1:3),0:3))
> low<-quantile(dat$a,.1)
> high<-quantile(dat$a,.9)
> dat$flag<-NA
> dat$flag[dat$a<=low]<-1
> dat$flag[dat$a>high]<-2
> dat
a flag
1 -1 NA
2 -2 NA
3 -3 1
4 0 NA
5 1 NA
6 2 NA
7 3 2
答案 1 :(得分:2)
感谢你回复Ian,我意识到这个问题本身并不是很好,但是我很难解释我想要的东西。在你的帮助下,我已经把它放在一起了:
top <- subset(data, data$column > quantile(data$column, 0.85))
bottom <- subset(data, data$column < quantile(data$column, 0.15))
listing <- rbind(top,bottom)
label <- 1:nrow(listing)
listing[sort.list(listing$Distance, decreasing=T),]