楼主: chenliao
42461 8

[问答] R语言中which 函数的使用问题 [推广有奖]

  • 1关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
52 点
帖子
6
精华
0
在线时间
8 小时
注册时间
2014-9-19
最后登录
2016-5-25

楼主
chenliao 学生认证  发表于 2014-10-1 00:46:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
x1 <- round(runif(100, min=80, max=100))
fx <- function (x1){
for(i in 1:length(x1)){
  zt <- which(x1[i]==80)
}
zt
}
fx(x1)

x1定义为80-100中100个随机数,我想取出x1中等于80的数所在的位置,因此构建了一个函数fx, 但为什么这个代码不能得到我想要的结果,求解答~~R语言初学者 求指教!
二维码

扫码加我 拉你入群

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

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

关键词:Which R语言

回帖推荐

daishen 发表于5楼  查看完整内容

x1

沙发
怪了怪 学生认证  发表于 2014-10-1 04:13:56
不需要用which函数。这样就可以:


x1 <- round(runif(100, min=80, max=100))
fx <- function (x1){
  
  for(i in 1:length(x1)){
    if (x1[i]==80)
      print(i)
  }

}
fx(x1)

藤椅
怪了怪 学生认证  发表于 2014-10-1 04:33:00
我个人更喜欢这种方式,因为向量输出方便处理:


x1 <- round(runif(100, min=80, max=100))
fx <- function (x1){
  temp <- rep(0,length(x1))
  for(i in 1:length(x1)){
    if (x1[i]==80)
       temp[i] <- 1
  }
  temp
}
fx(x1)
temp2 <- seq(1,length(x1))
temp3 <- temp2*fx(x1)
position <- temp3[temp3 !=0];position

板凳
珂赛特 发表于 2014-10-1 09:05:16
还是有点不明白                                                                        
                                       
                                                     
                                                     
                                             
                                                                 
                                                                                 

报纸
daishen 发表于 2014-10-1 10:27:58
x1 <- round(runif(100, min=80, max=100))
which(x1 == 80)
[1] 10 25 69

地板
chenliao 学生认证  发表于 2014-10-3 02:00:12
daishen 发表于 2014-10-1 10:27
x1
恩恩,我后来也自己发现了,直接用which(x1)==80 就行了,但是x1不应该是一组数么,为什么直接which(x1)就行。。。

7
daishen 发表于 2014-10-4 08:41:42
chenliao 发表于 2014-10-3 02:00
恩恩,我后来也自己发现了,直接用which(x1)==80 就行了,但是x1不应该是一组数么,为什么直接which(x1)就 ...
还是没有理解什么是向量化

8
gssdzc 在职认证  发表于 2014-10-7 16:09:05
跑跑就明白了。。在R中Run

9
anztlan 发表于 2017-8-16 18:31:11
x1 <- round(runif(100, min=80, max=100))
fx <- function (x1){
  for(i in 1:length(x1)){
    zt <- grep('80',x1)
  }
  zt
}
fx(x1)
返回来的结果是[1] 86 87 95 97

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 05:51