楼主: LYTW
2103 10

[问答] 求取连续截尾值 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

初中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
134 点
帖子
13
精华
0
在线时间
16 小时
注册时间
2018-11-16
最后登录
2019-7-23

楼主
LYTW 发表于 2018-11-16 10:34:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大神好:
请教个问题--
已知一个向量
x<-c(1,2,3,0.2,0.034,23,2,4,2,45,767,897,2,1,64,16,19,54,0.9,0,76,3,2,33,45,65,7,87,100,1324,,654,0.00543)
如何求得向量c截去小于(均值-3*标准偏差)和大于(均值+3*标准偏差)之后的值?如果连续截取10次呢?用R语言代码如何实现?

二维码

扫码加我 拉你入群

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

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


沙发
LYTW 发表于 2018-11-16 11:02:01
急求,麻烦看到的大神帮助一下,可有偿

藤椅
rainningpoet 发表于 2018-11-16 11:25:28
x<-c(1,2,3,0.2,0.034,23,2,4,2,45,767,897,2,1,64,16,19,54,0.9,0,76,3,2,33,45,65,7,87,101324,654,0.00543)

for (i in c(1:10)){
  x_new=x[x>mean(x)-3*sd(x)]
  x_new=x[x<mean(x)+3*sd(x)]
  x=x_new
}

x

板凳
LYTW 发表于 2018-11-16 12:19:48
rainningpoet 发表于 2018-11-16 11:25
xmean(x)-3*sd(x)]
  x_new=x[x
谢谢您嘞,但是好像和截尾一次的结果是一样的呀

报纸
zerofung 学生认证  发表于 2018-11-16 14:37:31
trim <- function(x,n) {
  nsd <- n*sd(x)
  return(x[(x < mean(x)-nsd) & (x > mean(x)+nsd)])
  }
x
trim(x,3)

你的例子跑不出来是因为你的标准差太大了。如果要跑10次,就x %>% trim(3) %>% trim(3) %>% trim(3)这样下去10次,或者用reduce

地板
zerofung 学生认证  发表于 2018-11-16 14:54:36
https://www.r-bloggers.com/repeatedly-applying-a-function/
关于如何连续截取10次,看看这个文章

7
LYTW 发表于 2018-11-16 15:17:52
zerofung 发表于 2018-11-16 14:37
trim % trim(3) %>% trim(3) %>% trim(3)这样下去10次,或者用reduce
谢谢您嘞

8
LYTW 发表于 2018-11-16 15:18:10
zerofung 发表于 2018-11-16 14:54
https://www.r-bloggers.com/repeatedly-applying-a-function/
关于如何连续截取10次,看看这个文章
好的,谢谢您

9
rainningpoet 发表于 2018-11-16 15:23:50
LYTW 发表于 2018-11-16 12:19
谢谢您嘞,但是好像和截尾一次的结果是一样的呀
那就是  你的数据点 都在 平均数的 3个标准差之内啊。再截不到新的数据点了

10
LYTW 发表于 2018-11-16 15:37:48
rainningpoet 发表于 2018-11-16 15:23
那就是  你的数据点 都在 平均数的 3个标准差之内啊。再截不到新的数据点了
用其他数据也实现不了截尾十次的结果

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-7 21:22