楼主: kkiiuukkiiuu
11896 19

[问答] 请问怎么选出一行里面的最大值,并把数据每一行或列最大的值设为1,其他为0 [推广有奖]

  • 0关注
  • 1粉丝

已卖:137份资源

高中生

60%

还不是VIP/贵宾

-

威望
0
论坛币
609 个
通用积分
0
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
333 点
帖子
19
精华
0
在线时间
26 小时
注册时间
2012-8-22
最后登录
2019-5-9

楼主
kkiiuukkiiuu 发表于 2014-3-4 10:57:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比如我有一个数据如下:
v1  v2   v3   v4
0.5 0.1 0.1 0.3
0.2 0.4 0.1 0.3
0.3 0.1   0  0.6
0.2 0.1 0.5 0.2
要怎么变成:
v1 v2 v3 v4
1   0   0   0
0   1   0   0
0   0   0   1
0   0   1   0
二维码

扫码加我 拉你入群

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

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

关键词:最大的 最大值 最大的 最大值

沙发
kkiiuukkiiuu 发表于 2014-3-4 11:29:10
我自己回答吧:
for(i in 1:nrow(df))
  for(j in 1:ncol(df))
  {
  if ( df[i,j]==max(df[i,]) )
    df[i,j]=1
  else
    df[i,j]=0
}

From:jasmine_007 in COS

藤椅
yywan0913 在职认证  发表于 2014-3-4 13:32:42
  1. x=df
  2. matrix(unlist(lapply(1:4,function(i) ifelse(x[i,]==max(x[i,]),1,0))),ncol=4)
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
qoiqpwqr + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

是什么给了你自信

板凳
yywan0913 在职认证  发表于 2014-3-4 13:34:38
  1. x=df
  2. sapply(1:4,function(i) ifelse(x[i,]==max(x[i,]),1,0))
复制代码
这个好点  lapply用多了都忘记这个更好了
是什么给了你自信

报纸
shuiniuli 发表于 2014-3-5 04:45:07
yywan0913 发表于 2014-3-4 13:34
这个好点  lapply用多了都忘记这个更好了
这个好,这个好,学习了

地板
jmpamao 发表于 2014-3-5 16:16:22
yywan0913 发表于 2014-3-4 13:34
这个好点  lapply用多了都忘记这个更好了
需要 t(sapply.....)下

7
jmpamao 发表于 2014-3-5 16:26:28
lz 从 COS看 数据量是也 有几万行

  1. t(apply(data,1,function(x)x==max(x)))+0
复制代码
都要时间了。
data.table 比 apply  作用于 data.frame 要快了多了
大家看看   用data.table 怎么做

  ps.晚上试试看,也学习下 data.table :)

8
yywan0913 在职认证  发表于 2014-3-5 16:33:30
jmpamao 发表于 2014-3-5 16:16
需要 t(sapply.....)下
你这样一提示,发现是忽略了一个问题。
    不过也符合楼主要求:
       转置下跟楼主的循环要求一样,按行取
       不转置就是按列取了。
所以楼主问题也未表达清楚哈。啊哈
是什么给了你自信

9
jmpamao 发表于 2014-3-5 16:36:54
yywan0913 发表于 2014-3-5 16:33
你这样一提示,发现是忽略了一个问题。
    不过也符合楼主要求:
       转置下跟楼主的循环要求一样, ...
也是, 有空看看 用 data.table 怎么做撒


10
yywan0913 在职认证  发表于 2014-3-5 16:40:12
jmpamao 发表于 2014-3-5 16:26
lz 从 COS看 数据量是也 有几万行

都要时间了。
我就知道data.table里面的fread比read.table快三倍。以及处理数据稍微好点。其他的感觉差不多的样子,可能我理解的不深吧。要求速度可以选择看下julia语言,上手跟R差不多。听说很强大的样子。
是什么给了你自信

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

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