楼主: znn_0802
4309 14

[问答] 请问在R语言中如何实现依次计算向量数据中最小值的个数 [推广有奖]

  • 0关注
  • 0粉丝

大专生

31%

还不是VIP/贵宾

-

威望
0
论坛币
660 个
通用积分
0.0010
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
291 点
帖子
28
精华
0
在线时间
43 小时
注册时间
2010-12-2
最后登录
2022-3-31

2论坛币
数据如下:
X1        X2        X3        X4        X5        X6        X7        X8 3073.5668 4050.1499  843.0294  843.0294 1631.7613 1254.4259 1254.4259 3994.4774        需要实现如下过程: 最小值843.0294有2个,计算2/n=8的结果,比843.0294大的数据是1254.4259,也有2个,加上前面的2个一共是4个,返回4,计算4/8的结果,最后创建包含依次的最小值和每个累加最小值的个数/n的计算结果的两个向量。   

最佳答案

czrdiao 查看完整内容

x = c(3073.5668,4050.1499,843.0294,843.0294,1631.7613,1254.4259,1254.4259,3994.4774) cumsum(prop.table(table(x)))
关键词:如何实现 最小值 R语言
沙发
czrdiao 发表于 2017-6-22 14:01:52 |只看作者 |坛友微信交流群
x = c(3073.5668,4050.1499,843.0294,843.0294,1631.7613,1254.4259,1254.4259,3994.4774)
cumsum(prop.table(table(x)))

使用道具

藤椅
hyu9910 在职认证  发表于 2017-6-22 14:08:37 |只看作者 |坛友微信交流群
如果向量是x_list。先找最小值:
> x_min = min(x_list)
再求最小值的个数。
> x_min_num=sum(x_list<=x_min)

使用道具

板凳
znn_0802 发表于 2017-6-22 17:21:26 |只看作者 |坛友微信交流群
hyu9910 发表于 2017-6-22 14:08
如果向量是x_list。先找最小值:
> x_min = min(x_list)
再求最小值的个数。
不是向量里的最小值,第一次是最小值,第二次找次小值,直到最后一个值,个数是第一次的个数,和第二次的个数依次累加,请看例子说明

使用道具

报纸
hyu9910 在职认证  发表于 2017-6-22 23:43:24 |只看作者 |坛友微信交流群
znn_0802 发表于 2017-6-22 17:21
不是向量里的最小值,第一次是最小值,第二次找次小值,直到最后一个值,个数是第一次的个数,和第二次的 ...
那个一点也不难啊。 你把向量排序,不就:最小,次小,。。。都在啦。

我的论坛币太多了,不需要你的2个论坛币哦。 反正我的意思是,这个事情很简单啦。 你看看我给的2句代码例子,再伤点脑细胞,就做出来啦。

使用道具

地板
znn_0802 发表于 2017-6-23 10:15:15 |只看作者 |坛友微信交流群
hyu9910 发表于 2017-6-22 23:43
那个一点也不难啊。 你把向量排序,不就:最小,次小,。。。都在啦。

我的论坛币太多了,不需要你的2 ...
你觉的简单,我觉的我不会,你的程序不是我要的核心意思,你写的这个程序我也知道,你要是觉的简单就麻烦给出我想要的结果的程序撒。

使用道具

7
hyu9910 在职认证  发表于 2017-6-23 11:38:33 |只看作者 |坛友微信交流群
znn_0802 发表于 2017-6-23 10:15
你觉的简单,我觉的我不会,你的程序不是我要的核心意思,你写的这个程序我也知道,你要是觉的简单就麻烦 ...
因为这是免费的帮助,回答得不如你要的完美,完全可能的。 你根据免费的帮助,自己多动脑子,积极自学下,也是完全应该的。

如果你实在不会,不如再拆分你的步骤。 譬如,先学会用R的代码求最小值(我已经给了代码),再求次小值(我已经提示你排序),。。。

你至少是本科生吧。 这样提示应该会了哦。 如果还是不会,建议花钱找家教哈。

使用道具

8
znn_0802 发表于 2017-6-27 11:47:49 |只看作者 |坛友微信交流群
czrdiao 发表于 2017-6-22 14:01
x = c(3073.5668,4050.1499,843.0294,843.0294,1631.7613,1254.4259,1254.4259,3994.4774)
cumsum(prop.ta ...
非常感谢您!您确实解决了我的问题!谢谢!向您多学习!

使用道具

9
znn_0802 发表于 2017-6-27 11:49:05 |只看作者 |坛友微信交流群
hyu9910 发表于 2017-6-23 11:38
因为这是免费的帮助,回答得不如你要的完美,完全可能的。 你根据免费的帮助,自己多动脑子,积极自学下, ...
看看最佳答案吧,你的思路和你人家差远了!还是向高手好好学习学习!

使用道具

10
znn_0802 发表于 2017-6-27 13:57:42 |只看作者 |坛友微信交流群
czrdiao 发表于 2017-6-22 14:01
x = c(3073.5668,4050.1499,843.0294,843.0294,1631.7613,1254.4259,1254.4259,3994.4774)
cumsum(prop.ta ...
您好,还是想向您请教一下,怎样能画出这个结果里的两组数的图?因为这个结果的性质在R里是
> x = c(3073.5668,4050.1499,843.0294,843.0294,1631.7613,1254.4259,1254.4259,3994.4774)
> b<-cumsum(prop.table(table(x)))
> str(b)
Named num [1:6] 0.25 0.5 0.625 0.75 0.875 1
- attr(*, "names")= chr [1:6] "843.0294" "1254.4259" "1631.7613" "3073.5668" .我不知道怎么样能把b向量里那个字符型转换成数字型,然后画这两组数组的直线图?刚接触R还请多多指教。> b[1]
843.029368
0.08695652

b[1]显示两组数据同时都出来,没法分开?也是因为这个原因没法绘图,请您多多指教!谢谢您!


使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 21:15