楼主: mashagua
9668 10

[问答] R语言如何选出范围内的数据 [推广有奖]

  • 0关注
  • 1粉丝

博士生

88%

还不是VIP/贵宾

-

威望
0
论坛币
60 个
通用积分
69.1920
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
3931 点
帖子
198
精华
0
在线时间
258 小时
注册时间
2013-9-20
最后登录
2020-12-21

楼主
mashagua 学生认证  发表于 2016-7-28 08:40:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
a   1      0.12         
b   3      0.11  
c   2      0 .02
d   9      0.31                       
e   8      0.22                           
h  10     0.17
k  11     0.43      
l    7      0.35
m   6     0.61
n  8       0.44
p  12     0.29
是这样一个表格,每个字母有对应代表的数字,我想问一下,我能不能用R选出选出所有7<x<=10的组合,想要的结果是这样的
e  8      0.22            d   9    0.31            h  10    0.17
n   8     0.44           h  10    0.17            k  11    0.43
d  9       0.31          k   11    0.43           p   12   0.29
h  10     0.17          p   12   0.29
k  11     0.43
p 12      0.29

二维码

扫码加我 拉你入群

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

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

关键词:R语言 不能用 如何

沙发
jiangbeilu 学生认证  发表于 2016-7-28 09:58:18
感觉你给出的结果,都不知道x是哪个呀?
如果你中间那一行是x的话,数据名是data,
用dplyr比较容易理解:
  1. library(dplyr)
  2. data %>% filter(x<=10 & x>7)
复制代码

藤椅
mashagua 学生认证  发表于 2016-7-28 14:45:18
jiangbeilu 发表于 2016-7-28 09:58
感觉你给出的结果,都不知道x是哪个呀?
如果你中间那一行是x的话,数据名是data,
用dplyr最比较容易理解 ...
x1<-c("a","b","c","d","e","h","k","l","m","n","p")
x2<-c(1,3,2,9,8,10,11,7,6,8,12)
x3<-c(0.12,0.11,0.02,0.31,0.22,0.17,0.43,0.35,0.61,0.44, 0.29)
x<-data.frame(x1,x2,x3)
library(dplyr)
x%>% filter(x$x2<=10 & x$x2>7)
得到的结果是
x1 x2   x3
1  d  9 0.31
2  e  8 0.22
3  h 10 0.17
4  n  8 0.44
可是我想选择的是x$x2>=8,x$x2>=9,x$x2>=10的组合,是输出3组

板凳
jiangbeilu 学生认证  发表于 2016-7-28 15:55:41
我不知道你的意思是说想得到x2=8,x2=9,x2=10分别的数据,还是指什么?
  1. library(dplyr)
  2. x %>% filter(x2>8)
复制代码

你可以改一下里面的数据,就可以得到你想要的数据了。

报纸
mashagua 学生认证  发表于 2016-7-28 16:41:08
jiangbeilu 发表于 2016-7-28 15:55
我不知道你的意思是说想得到x2=8,x2=9,x2=10分别的数据,还是指什么?

你可以改一下里面的数据,就可以得 ...
是的,这样还是需要自己每次手动改才能得到一组,然后三组再组合吗

地板
jiangbeilu 学生认证  发表于 2016-7-29 10:05:24
mashagua 发表于 2016-7-28 16:41
是的,这样还是需要自己每次手动改才能得到一组,然后三组再组合吗
如果你需要组合的话,那直接选择3组不就可以了么?

7
mashagua 学生认证  发表于 2016-7-29 10:12:36
jiangbeilu 发表于 2016-7-29 10:05
如果你需要组合的话,那直接选择3组不就可以了么?
我想直接程序跑出来的就是三组,不过还是谢谢你

8
mashagua 学生认证  发表于 2016-7-29 16:38:35
jiangbeilu 发表于 2016-7-29 10:05
如果你需要组合的话,那直接选择3组不就可以了么?
抱歉我突然想知道怎么直接选择3组?(麻烦能说一下吗)

9
jiangbeilu 学生认证  发表于 2016-7-29 17:06:04
就是沙发里的代码

10
只R初见 发表于 2016-7-29 17:20:59
这个筛选不用包也行
d1 <- c("a","b","c","d","e","h","k","l","m","n","p")
d2 <- c(1,3,2,9,8,10,11,7,6,8,12)
d3 <- c(0.12,0.11,0.02,0.31,0.22,0.17,0.43,0.35,0.61,0.44,0.29)
d <- data.frame(d1,d2,d3)  
d
d[d2>7&d2<=10,]

结果运行出来是
   d1 d2   d3
4   d  9 0.31
5   e  8 0.22
6   h 10 0.17
10  n  8 0.44
>

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-31 01:05