Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我在R中使用ifelse函数,为什么频率会降低?有没有办法从两个变量/列的组合中创建类别?_R_If Statement_Conditional Statements - Fatal编程技术网

如果我在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