由买买提看人间百态

topics

全部话题 - 话题: ifelse
1 (共1页)
p****e
发帖数: 165
1
data set 里有个叫做“dimension”的categorical variable, 里面有各个产品的尺寸
("XL", "LL", "M", "S", "SP") , 现在我想把这个“XL, LL"这两个尺寸合并为“L",
其他的尺寸保持不变,我想用ifelse这样做:
d$dimension_new <- ifelse(d$dimension == 'XL'| d$dimension == 'LL', 'L', d$
dimension)
可是当我列出新变量时,发现尺寸变成“1”,“2”, “3",如下:
>level(dimension_new)
"L" "1" "2" "3"
>head(d)看了一下,果然dimension_new变成"L" "1" "2" "3"
有没有什么办法在ifelse这一步就可以让新变量dimension_new变成:L, M, S, SP ?
我下面要用dimension_new在regression中,不想用"L" "1" "2" "3" ,这样
我还得一个个去校对他们所对应的真... 阅读全帖

发帖数: 1
2
得多傻逼才会把生活过成ifelse?
p****e
发帖数: 165
3
终于work了,原来是要转成character, 原先的是factor. aloud好厉害呀!
再追问一下,我不太理解为什么这里得用%in%, 而不可以用==
我如果没有保留部分原值,全部改,就可以用==了,比如把XL, LL, M, S, SP改成只
有两个level: L, S:
原先dimensioncode是factor,此时不改data type, 还是factor:
d$dimensioncode1 <- ifelse(d$dimensioncode == 'XL'| d$dimensioncode == 'LL',
"L", "S")
非常谢谢!
h**t
发帖数: 1678
4
来自主题: Statistics版 - 有什么R function 可以推荐?
拿到一个code 是从sql翻译过来的, 很繁复。 其中有很多类似于下类这样的分类:
m_prima_total <- ifelse(prima_total <= 557.71, 0,NA)
m_prima_total <- ifelse(prima_total > 557.71 & prima_total <= 763, (prima_
total - 557.71)/(763 - 557.71), m_prima_total)
m_prima_total <- ifelse(prima_total > 763 & prima_total <= 1185.96 , 1, m_
prima_total)
m_prima_total <- ifelse(prima_total > 1185.96 & prima_total <= 1832.04 , (
1832.04-prima_total)/( 1832.04- 1185.96), m_prima_total)
m_prima_total <- ifelse(prima_total > 1832.04 | is.na(prima_t... 阅读全帖
k*******a
发帖数: 772
5
来自主题: Statistics版 - 脑筋急转弯的面试题
嗯, code 只是考虑比较简单的情形,不过大概意思差不多
sp <- 15
nbet <- 10000
aa <- function(x) {
win <- rbinom(nbet, 1, .495)
win <- ifelse(win, 1, -1)
winm <- 5 + cumsum(win)*.75
i0 <- which(winm<=0)[1]
i1 <- which(winm>=sp)[1]
i0 <- ifelse(is.na(i0), Inf, i0)
i1 <- ifelse(is.na(i1), Inf, i1)
if (i0==Inf & i1==Inf) return(NA) else return(ifelse(i0 }
b <- sapply(1:5000, aa)
mean(b)
n*****3
发帖数: 1584
6
来自主题: Programming版 - R竟然没有elseif / elif ?
ifelse( ,
ifelse(....
ifelse..
f*******n
发帖数: 5241
7
来自主题: Weightlifting版 - 大家帮忙估价一下体脂大概是多少?
糊涂弟说ifelse是他大妹子。:)
我把给elseif的包子送到ifelse那里去了,所以想你可能也是这样。:)不过MM不错,
又还给我了。
n******7
发帖数: 12463
8
来自主题: Programming版 - robpike 老流氓
我看了一下这个code,确实有点绕
不过我觉得不是这个概念多复杂,而是因为人脑的memory非常有限,需要跟踪的量一多
就oom了
这段code的问题在这里
new_continuation <- function(result) {
continuation(result * n)
}
又是result 又是new_continuation的,
这两个东西现在没用,result本身又是个有意义的词
一下把人绕晕了
其实把这个东西当做匿名函数放到调用里面就好多了
我把ifelse也放一起了,你看是不是容易理解多了?
cp_factorial <- function(n, continuation = identity)
ifelse(n == 1, continuation(1), cp_factorial(n - 1, function(x)
continuation(x * n)))
另外一个绕的地方是function composition
执行过程写出来就是
cp_factorial(2, function(x) identity(x * 3))
cp_factorial(... 阅读全帖
S******y
发帖数: 1123
9
#In R -
#----------------------------
t=read.table('C:\\mylist.txt')
z<-ifelse(t == "A" | t=="B" |t== "C"|t== "D"|t=="E", 1, ifelse(t == 1 | t==2
|t== 3|t== 4|t==5, 0, -99))
w****u
发帖数: 16
10
有一个小问题,应该非常straightforward的文本变量recoding成数值变量, 不知哪里
搞错了,请帮着看一下。
character变量dat.new$Size_Calc有4个values,分布如下:
> table(dat.new$Size_Calc)
Extra Large Large Medium Small
15 22 59 36
我想把它rocode成一个numerical变量:
> dat.new$size_num[dat.new$Size_Calc == "Small"] <- 1
> dat.new$size_num[dat.new$Size_Calc == "Medium"] <- 2
> dat.new$size_num[dat.new$Size_Calc == "Large"] <- 3
> dat.new$size_num[dat.new$Size_Calc == "Extra Large"] <- 4
为什么生成的... 阅读全帖
t*****w
发帖数: 254
11
来自主题: Statistics版 - 请问面试 R 应该怎么准备?
When I had my job interview, they always tested my SAS skill.However I use R
all the time. To help your preparation, read my R codes to see how much you
can understand it.
%in%
?keyword
a<-matrix(0,nrow=3,ncol=3,byrow=T)
a1 <- a1/(t(a1)%*%spooled%*%a1)^.5 #standadization in discrim
a1<- a>=2; a[a1]
abline(h = -1:5, v = -2:3, col = "lightgray", lty=3)
abline(h=0, v=0, col = "gray60")
abs(r2[i])>r0
aggregate(iris[,1:4], list(iris$Species), mean)
AND: &; OR: |; NOT: !
anova(lm(data1[,3]~data1[,1... 阅读全帖
y*****w
发帖数: 1350
12
来自主题: Statistics版 - 请问如何在R中写recursive function?
试了一下,好像work了,但是用的是d==0或者s==0而不是f(s,0) and/or f(0,d). R
code如下 (p=q=3):
f <- function(s,d) {
x <- ifelse(d==0, 2s, 3*f(s,d-1))
y <- ifelse(s==0, 2d, 3*f(s-1,d))
z <- x + y
c(x,y,z)
}

parameters
m*******e
发帖数: 1598
13
来自主题: Military版 - 为何进入大学后反而废掉了
连个ifelse都写不顺
s*****r
发帖数: 43070
14
说白了就是思维方式过于机械,一是一二是二,非黑即白,缺乏弹性
另外人文知识学得太少,不够小资,无法满足女人对生活的幻想
码农一般生活作风懒散,不修边幅,不干家务,生活细节处理得不够好
还有身体条件不够好,一坐就是一天,一定要多锻炼,身体好感情才能好啊
L*****d
发帖数: 5093
15
总结得很好
k*****a
发帖数: 7389
16
都是废话
g******t
发帖数: 11249
17
码农基本是农村妹和城市下层妹的首选
工资高又没处花
更高的阶层女孩就去找家世更好的男人了

发帖数: 1
18
和什么XX思维无关,就是太短,都太短。
g***j
发帖数: 1275
19
一下都是我面试的经验和教训,欢迎各位大牛指正或者补充
首先,要端正观念,写代码只是最后一步,是在对方完全理解了你的意图之后的最终表
述,所以,在写代码之前,一定要跟对方把你的意图表述清楚,一定不要在对方不懂你
的想法的情况下就开始写代码,大忌,大忌!
其次,写代码之前,大脑里面要有个大picture,不能想到哪儿写到哪儿。是你的大脑
在写代码,而不是白板上你的手在代码。你的手只是一个printer里面的喷头而已,是
它把你大脑里面的代码print到白板上,你的大脑才是控制那个喷头的芯片。所以,写
之前,你要看着那个白板打个腹稿,想想一下白板上可能有哪些代码,比如定义哪些变
量,哪些if else,哪里退出,call哪几个function,等等。
第三,你在白板或者纸上写代码的过程中,一定要跟面试官交流,让他知道自己在干什
么。每次提笔之前,告诉他,我前面写了啥,然后我准备写啥,这个写的过程,是前面
跟面试官讨论问题结束之后的具体反映。
第四,如果有重复的代码,一定要用一个变量或者一个function表示。本来面试的代码
就不长,还有重复的代码会很ugly。比如类似current->ne... 阅读全帖
l*n
发帖数: 529
20
来自主题: JobHunting版 - G onsite面经 加求blessing
accu(accumulate)如其名字,是记录最优的path走到当前位置的累计值。
pathmin是走到当前位置的最优路径的最小accu值,假设路径上input矩阵的值是2>>5>>
-3>>-2>>4>>2的话,accu就是2>>7>>4>>2>>6>>8,而一路上pathmin的值是2>>2>>2>>2>
>2>>2。
这里ifelse的逻辑就是,进入某一个位置只能是从左边或者上边的cell,左边cell的
pathmin值比上边的pathmin要高的话,初始需要的strength就更低,所以从左边进入当
前cell。
e****i
发帖数: 393
21
来自主题: JobHunting版 - M家的机会有没人有兴趣?
你丫就一傻逼吧,你丫要是真正能精通machine learning,别的方面当然可以网开一面
。就怕你这种货色就会写ifelse的四种写法吧。
f*******t
发帖数: 49
22
来自主题: Working版 - 和一个东欧同事扛上了
希望听点同胞们的建议.
新到一个公司近4个月,公司其实不大,是家工业设备制造公司,工程部也就100来人. 但
公司所属的母公司很大,全集团有几十万人吧.
以前一直在Startup类的小公司做,本以为大公司会很规范,技术人员能力比较强呢,结果
工作这段时间,发现和以前的Startup完全不是一个级别,就是软件开发的管理来说.
前几个月呢,熟悉产品,看了大量的手册.然后搭建开发平台,其中电器组里的一个东欧人
很热心,给了些帮助. 然后组里的经理让我熟悉软件,就把这个东欧人负责N年的一个产
品类型的软件给了我.忘了讲,组里的经理就是同胞中国人.
本来呢,我对那个东欧人还是很感激的,毕竟比较热心,帮助搭建开发平台需要的琐碎的
零件在那里啊,工具在哪里啊,他都主动跑来告诉我.
但看了他的Sourcecode,结果让我大吃一惊,真的是吃惊,这个东欧人在公司做了8年了,
他的程序,我感觉不如大学在校本科生.
经理让我负责一个功能的更新,我就看了和该功能模块相关的一些文件,发现该东欧人的
程序中,竟然有整数除0的Bug, 还有判断4舍五入,结果他采取的做法,简直要我怀疑他是
不是上过学, 简单说,他用... 阅读全帖
V*****n
发帖数: 893
23
well, he should draft behind someone like ifelse. If he is passed by some
guy, he would just say "dude, what's the hurry. you are missing the view..."
kaka
R*****s
发帖数: 41236
24
赞!whatelse=ifelse?
w********6
发帖数: 12977
25
来自主题: Cycling版 - 新版主带头奔一个
ifelse 还真是 whatelse 的新马甲,我一度把减肥版的斑竹也当成你了
i****e
发帖数: 126
26
来自主题: Fitness版 - 12月版花——ifelse
看版上的人大部分都比较nice,就壮胆奔一个。从一个两年前从不锻炼的人,到现在每
周3到4 次去健身房在椭圆机上锻炼。不过最近才开始练练小腹,主要就是平躺抬腿,
每次做4组,每组50次,每周两次(不好意思,有点少)。照片上肥肉还是很多,但是
使劲看还是有点阴影的。
i****e
发帖数: 126
27
来自主题: Fitness版 - 5月版花 - ifelse之奔一个
每周去gym四次或者五次,45分钟登山机和椭圆机交替,不到二十分钟的力量练习,有8 min abs, legs presses, triceps presses。也没啥效果,就是变瘦了,love handle没有了。奔个腹部好
了。
e****f
发帖数: 3393
28
还好,没弄成ifelse。
h******y
发帖数: 1040
29
来自主题: Weightlifting版 - 好了,好了,既然大家兴致那么高。
I've seen your two lines....on the other website...quite impressive ah..
So u think with more core exercises, I'll acheive the muscle in the middle,
like ifelse?
but one thing for sure ah...i won't get a small waist...no way to reduce
10cm. sigh sigh sigh :(

点。
b**k
发帖数: 11850
30
来自主题: Weightlifting版 - 我有几个小梦想
r u ifelse's mj?
c*******r
发帖数: 13580
31
来自主题: Weightlifting版 - 我有几个小梦想
ifelse自己也是马甲
f*******n
发帖数: 5241
32
来自主题: Weightlifting版 -
完了,我本来想给糊涂帅哥的包子,好像是送到ifelse那里去了,记得你说过她是你妹
妹来着,给她和给你一样的吧?
f*******n
发帖数: 5241
33
来自主题: Weightlifting版 - 大家帮忙估价一下体脂大概是多少?
你是不是把elseif和ifelse给混了?
g**y
发帖数: 1106
34
来自主题: Weightlifting版 - 大家帮忙估价一下体脂大概是多少?
wah!~~ approaching ifelse mm in such a subtle way.. xixi..
If he bribes me enough, I can connect the link for him.. xixi
h******y
发帖数: 1040
35
来自主题: Weightlifting版 - 彻底怂到家
笑笑去飞版考个古看看ifelse版花的性感腹肌吧。
p*****2
发帖数: 21240
36
来自主题: Programming版 - 怎样能把go写的稍微漂亮一点?
你这个就叫清晰?
跟error折腾来折腾去的
可能的error如果多起来你都用if else? 难道不应该用switch? 那你啥时候用switch?
ifelse 多了用switch难道不是common sense?
d****n
发帖数: 1637
37
来自主题: Programming版 - 怎样能把go写的稍微漂亮一点?
我的code 里面基本没有switch,除了 type switch
而且一个else都没有。
看起来那叫舒服。
同事就喜欢nested ifelse,我心里默念他祖宗18遍

switch?
d****n
发帖数: 1637
38
来自主题: Programming版 - 怎样能把go写的稍微漂亮一点?
那倒不是,我能忍受别人用switch,但是我个人避免去用,不是gopher general.
包括no ifelse,都是我个人习惯。
D*******o
发帖数: 3229
39
来自主题: Programming版 - R竟然没有elseif / elif ?
有的,大哥。
Option 1:
if (a){bla a}
else if (b){bla b}
else{bla,bla}
Option 2:
ifelse(a,bla a, bla bla)
l*******D
发帖数: 282
s******y
发帖数: 352
41
gp will increment by 1 when a new Unconfirmed_response is encountered.
gp will be reset to 1 when ID is changed.
if you need me to rewrite the code with ifelse statement, baozi please!
t****a
发帖数: 1212
42
来自主题: Statistics版 - missing data question in R
1. you can use is.na() function to detect if a value is NA.
2. your code would be very slow when you are computing large data.frame.
because you are using apply or sapply. I would write it with vector
computing like:
data$newcol = ifelse(is.na(data[,2]) | is.na(data[,4]) | data[,2]!=data[,4],
as.numeric(data[,5]) - 1, as.numeric(data[,5]))
S*********1
发帖数: 3004
43
来自主题: Statistics版 - 问一个用R计算年龄的问题
请问:有"出生日期"和"测试日期",格式:mo/day/year,怎么算测试时的年龄
,我觉得可以用if,ifelse之类的,但是写不出来
dob doa
1/2/2001 1/3/2001
9/20/2001 9/20/2011
12/14/2000 11/25/2010
谁能给个例子,包子酬谢
a****r
发帖数: 1486
44
dm[dm %in% c("XL", "LL")] <- "L"

",
p****e
发帖数: 165
45
谢谢回复。能展开写一下吗?%in%是什么意思?没见过R有这个符号啊~
data set叫做d, dimension是其中的一个field
你是指这个吗?但我运行了不行。。。
d$dimension_new[dimension == c("XL") | dimension == c("LL")] <- "L"
求指教,麻烦了!
p****e
发帖数: 165
46
哦,我数据表是叫d, 所以你原来是 d[d %in% c("fixed_top", "fixed_bottom")] <-
"L"
我把dm看成dimension缩写了,就觉得怎么field name怎么可以这样表达。
运行上面那个替换命令后,我head(d)一下,没发现dimension里面“XL”“LL”被替换
成"L", 没有成功,能问一下这是为什么吗? 谢谢!
a****r
发帖数: 1486
47
你就把dm换成d$dimension就对了
我就是懒得写那么长罢了。

-
p****e
发帖数: 165
48
d[d$dimensioncode %in% c("XL", "LL")] <- "L"
这样虽然没报错,但dimensioncode原来"XL", "LL"的变成了“"
好像还是不对,为什么呢?
麻烦你了!
D******n
发帖数: 2836
49
d$dimensioncode[d$dimensioncode %in% c("XL", "LL")] <- "L"
1 (共1页)