如果我在R中使用ifelse函数,为什么频率会降低?有没有办法从两个变量/列的组合中创建类别?
当我这样做的时候如果我在R中使用ifelse函数,为什么频率会降低?有没有办法从两个变量/列的组合中创建类别?,r,if-statement,conditional-statements,R,If Statement,Conditional Statements,当我这样做的时候 table(df$strategy.x) 0 1 2 3 70 514 223 209 table(df$strategy.y) 0 1 2 3 729 24 7 4 我想创建一个组合了这两个变量的变量。我试过这个 df <- df %>% mutate(nstrategy1 = ifelse(strategy.x==1| strategy.y==1 , 1, 0)) table(df$nstrateg
table(df$strategy.x)
0 1 2 3
70 514 223 209
table(df$strategy.y)
0 1 2 3
729 24 7 4
我想创建一个组合了这两个变量的变量。我试过这个
df <- df %>%
mutate(nstrategy1 = ifelse(strategy.x==1| strategy.y==1 , 1, 0))
table(df$nstrategy1)
0 1
399 519
获取两个结果之和的最简单方法是添加两个表对象:
table(mtcars$am) + table(mtcars$vs)
# 0 1
# 37 27
我猜它们不是不相交的集合,也就是说,在某些情况下,y==2已经在y==1中得到了解释。我假设df是一个数据帧。因此,strategy.x和strategy.y列的长度应该相同。由于
表(strategy.x)
的总数为1016,而表(strategy.y)
的总数为764,我知道您在每列中都有许多NAs。没有预期值的原因是,您必须有一些行,其中strategy.x和strrategy.y具有相同的值。使用此:表(df$strategy.x,df$strategy.x,useNA=“always”)
可以更好地了解您所看到的内容。无论如何。。。你的问题不明确。你的目标不是很清楚。此外,当你在网上发布问题时,你通常希望分享一个可复制的例子和一些(不一定是全部)数据。提供的数据应足以显示您正在处理的问题,并允许其他人重现您的问题。
0 1 2 3
799 538 230 213
table(mtcars$am) # 13 1's
table(mtcars$vs) # 14 1's
mtcars$ones = ifelse(mtcars$am == 1 | mtcars$vs == 1, 1, 0)
table(mtcars$ones) # 20 1's < 13 + 14 = 27
table(mtcars$am, mtcars$vs)
# 0 1
# 0 12 7
# 1 6 7
table(mtcars$am) + table(mtcars$vs)
# 0 1
# 37 27