由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 在R中ifelse如何运用于variable recoding?
相关主题
复杂分类变量recoding?问个test of independence的问题
R classification tree model 请教一个covariance的问题
R question -- character variable recoding -- what's wrong???Joint test for difference in a groups of variables between
请教一个SAS recode variable的问题吧问个multicollinearity 的问题,inSAS - fresh水平,谢谢帮助!
Help! A data step problem求一个用SPSS算multilevel logistic regression。谢谢了。
how to convert a categorical variable into a continuous variablelooking for a stat book - will return favor with Baozi!
一个 proc mixed 的问题[合集] a R question
SAS CODE HELP!MDA- Multiple Discriminant Analysis (dimension reduction)
相关话题的讨论汇总
话题: ll话题: xl话题: dimension话题: in%
进入Statistics版参与讨论
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" ,这样
我还得一个个去校对他们所对应的真正尺寸。
向大牛们求教了!
a****r
发帖数: 1486
2
dm[dm %in% c("XL", "LL")] <- "L"

",

【在 p****e 的大作中提到】
: 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 ?

p****e
发帖数: 165
3
谢谢回复。能展开写一下吗?%in%是什么意思?没见过R有这个符号啊~
data set叫做d, dimension是其中的一个field
你是指这个吗?但我运行了不行。。。
d$dimension_new[dimension == c("XL") | dimension == c("LL")] <- "L"
求指教,麻烦了!

【在 a****r 的大作中提到】
: dm[dm %in% c("XL", "LL")] <- "L"
:
: ",

p****e
发帖数: 165
4
哦,我数据表是叫d, 所以你原来是 d[d %in% c("fixed_top", "fixed_bottom")] <-
"L"
我把dm看成dimension缩写了,就觉得怎么field name怎么可以这样表达。
运行上面那个替换命令后,我head(d)一下,没发现dimension里面“XL”“LL”被替换
成"L", 没有成功,能问一下这是为什么吗? 谢谢!

【在 a****r 的大作中提到】
: dm[dm %in% c("XL", "LL")] <- "L"
:
: ",

a****r
发帖数: 1486
5
你就把dm换成d$dimension就对了
我就是懒得写那么长罢了。

-

【在 p****e 的大作中提到】
: 哦,我数据表是叫d, 所以你原来是 d[d %in% c("fixed_top", "fixed_bottom")] <-
: "L"
: 我把dm看成dimension缩写了,就觉得怎么field name怎么可以这样表达。
: 运行上面那个替换命令后,我head(d)一下,没发现dimension里面“XL”“LL”被替换
: 成"L", 没有成功,能问一下这是为什么吗? 谢谢!

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

【在 a****r 的大作中提到】
: 你就把dm换成d$dimension就对了
: 我就是懒得写那么长罢了。
:
: -

D******n
发帖数: 2836
7
d$dimensioncode[d$dimensioncode %in% c("XL", "LL")] <- "L"

【在 p****e 的大作中提到】
: d[d$dimensioncode %in% c("XL", "LL")] <- "L"
: 这样虽然没报错,但dimensioncode原来"XL", "LL"的变成了“"
: 好像还是不对,为什么呢?
: 麻烦你了!

p****e
发帖数: 165
8
这样不行的,我运行后的error message:
Warning message:
In `[<-.factor`(`*tmp*`, d$dimensioncode %in% c("XL", "LL"), :
invalid factor level, NAs generated
运行“d[d$dimensioncode %in% c("XL", "LL")] <- "L" 就没有报错,但问题是
dimensioncode中符合"XL", "LL"的变成了""

【在 D******n 的大作中提到】
: d$dimensioncode[d$dimensioncode %in% c("XL", "LL")] <- "L"
a***d
发帖数: 336
9
for the code to work, d$dimensioncode cannot be a factor variable. Run:
d$dimensioncode <- as.character(d$dimensioncode)
d$dimensioncode[d$dimensioncode %in% c("XL","LL")] <- "L"
if you really want to keep d$dimensioncode as a factor variable, run:
d$dimensioncode <- as.factor(d$dimensioncode)

【在 p****e 的大作中提到】
: 这样不行的,我运行后的error message:
: Warning message:
: In `[<-.factor`(`*tmp*`, d$dimensioncode %in% c("XL", "LL"), :
: invalid factor level, NAs generated
: 运行“d[d$dimensioncode %in% c("XL", "LL")] <- "L" 就没有报错,但问题是
: dimensioncode中符合"XL", "LL"的变成了""

p****e
发帖数: 165
10
终于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")
非常谢谢!

【在 a***d 的大作中提到】
: for the code to work, d$dimensioncode cannot be a factor variable. Run:
: d$dimensioncode <- as.character(d$dimensioncode)
: d$dimensioncode[d$dimensioncode %in% c("XL","LL")] <- "L"
: if you really want to keep d$dimensioncode as a factor variable, run:
: d$dimensioncode <- as.factor(d$dimensioncode)

a***d
发帖数: 336
11
== works too.
dm %in% c("XL","LL") is the same as dm=="XL"|dm=="LL"

',

【在 p****e 的大作中提到】
: 终于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")
: 非常谢谢!

1 (共1页)
进入Statistics版参与讨论
相关主题
MDA- Multiple Discriminant Analysis (dimension reduction)Help! A data step problem
问个问题,高手请进how to convert a categorical variable into a continuous variable
linear regression 中的categorical data一个 proc mixed 的问题
菜鸟请教一个问题SAS CODE HELP!
复杂分类变量recoding?问个test of independence的问题
R classification tree model 请教一个covariance的问题
R question -- character variable recoding -- what's wrong???Joint test for difference in a groups of variables between
请教一个SAS recode variable的问题吧问个multicollinearity 的问题,inSAS - fresh水平,谢谢帮助!
相关话题的讨论汇总
话题: ll话题: xl话题: dimension话题: in%