全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
42373 8
2014-10-01
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语言初学者 求指教!
二维码

扫码加我 拉你入群

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

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

全部回复
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
还是有点不明白                                                                        
                                       
                                                     
                                                     
                                             
                                                                 
                                                                                 
二维码

扫码加我 拉你入群

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

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

2014-10-1 10:27:58
x1 <- round(runif(100, min=80, max=100))
which(x1 == 80)
[1] 10 25 69
二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

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

说点什么

分享

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