作者MIZUYAMA (致命祈愿)
看板Statistics
标题[程式] R计算问题
时间Tue Mar 5 11:05:07 2013
[软体程式类别]:R
[程式问题]:
单纯计算问题 只是想不出程式码哪里有错
[软体熟悉度]:
中(3个月到1年)
[问题叙述]:
举例 有个100*3的矩阵A
A[,1]分於三个部分 44- ,45~64,65+
A[,2]则是1~10随机
A[,3] =1 or 2
我要计算 A[,1] 小於等於44 (44-)
A[,2] 介於5~9
A[,3] 等於1
符合这三个条件的个数
[程式范例]:
我是这样写的 但是跑出来是0...我认为是不可能的....
x<-sum(ifelse(A[,1]<45 & A[,2] %in% c(5:9) & A[,3]==1,1,0))
结果算出来x=0
想请问板上高手有看出这句程式码哪里有错吗 冏?
-----------------------------------------------------------------------------
--
「如果昨天到了明天会变成两天前,试问後天应该是今天或是昨天?」
~时间操纵绪论期末考
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.85.83.97
1F:推 lin15:A[1]==>A[,1] ifelse的括号也有错吧 03/05 11:38
2F:→ MIZUYAMA:喔喔 没有 我打在ptt时打错 程式码没错 03/05 13:03
※ 编辑: MIZUYAMA 来自: 219.85.83.97 (03/05 13:04)
※ 编辑: MIZUYAMA 来自: 219.85.83.97 (03/05 13:38)
3F:推 blackalert:看不出问题 XD 试试检查一下资料? 03/05 14:18
4F:推 blackalert:我怀疑你的资料属性是character 03/05 14:24
5F:推 onionsteven:%in% c(5,6,7,8,9) 5.1会被排除 03/05 17:37
6F:推 onionsteven:c(5:9)不是5<x<9 而是 5,6,7,8,9 03/05 17:40
7F:→ MIZUYAMA:o大 我就是要56789 我确认是资料问题了 是character 03/06 08:39
8F:→ MIZUYAMA:如果是character 要怎麽解决呢? 03/06 08:40
9F:推 blackalert:如果你能列个几笔资料出来可能会比较知道问题在哪 03/06 09:32
10F:→ blackalert:不过从内文看起来,你的A[,1]该不会是类似"44-"这样吧? 03/06 09:33
11F:→ blackalert:是的话,就要用 A[,1] == "44-" 而不是 A[,1] < 44 03/06 09:34
12F:→ MIZUYAMA:blackalert大 44-是简称 指小於45的一群数字 03/06 11:24
13F:→ MIZUYAMA:目前确认是A[,2]出问题 用as.numeric似乎还是没用... 03/06 11:25
14F:→ MIZUYAMA:A[,2]有几项会夹带英文 如98A 3E 不过没差因为不是我要的 03/06 11:28
15F:→ MIZUYAMA:强制转成数字 生成NA也应该抓的道说~"~ 03/06 11:28
16F:→ MIZUYAMA:意外解决的 as.vector.... 03/06 12:00
17F:推 onionsteven:可以请问原本A[,2]的mode是甚麽类型吗? 03/06 18:11
18F:推 onionsteven:%in%前後资料属性不同的话也会判定为不同的东西 03/07 10:30