楼主: znn_0802
4443 2

[问答] 请问如何在R语言中实现数据框每一列中除去0的最小值和对应的位置? [推广有奖]

  • 0关注
  • 0粉丝

大专生

31%

还不是VIP/贵宾

-

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

楼主
znn_0802 发表于 2017-6-21 20:13:09 |AI写论文
1论坛币
初步学R,请多多指教!

最佳答案

cheetahfly 查看完整内容

假设数据是data.frame,变量名是dat,全部列是数值型。 # 最小值 sapply(dat, function(x) {x[x == 0]
关键词:R语言 最小值 数据框 如何

沙发
cheetahfly 在职认证  发表于 2017-6-21 20:13:10
假设数据是data.frame,变量名是dat,全部列是数值型。
# 最小值
sapply(dat, function(x) {x[x == 0] <- NA; min(x, na.rm = TRUE)})
# 对应位置
sapply(dat, function(x) {x[x == 0] <- NA; which(x == min(x, na.rm = TRUE))})

藤椅
znn_0802 发表于 2017-6-22 13:41:34
cheetahfly 发表于 2017-6-21 20:13
假设数据是data.frame,变量名是dat,全部列是数值型。
# 最小值
sapply(dat, function(x) {x[x == 0]
谢谢,已解决,最后的用了下apply,设置了Index 的维度,因为要对列计算,少了2最后的结果是按行计算的
就是:apply(m,2,function(m){m[m==0]<-NA;min(m, na.rm = TRUE)}),就是这句m[m==0]<-NA这句话还不是很明白,m==0,返回的是true 或false,ture=1,那么m[ture]是表示什么意思?

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

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