在r中创建条件变量

时间:2017-12-03 15:04:08

标签: r statistics

我们已经完成了一项任务,我们必须创建2个变量,均匀分布在0和1之间,运气和情报,以及2000个观察结果:

Intelligence <- runif(2000, 0, 1)
Luck <- runif <- runif(2000, 0, 1)

然后我们必须创建一个大学变量,其中University = 1如果Luck + Intelligence > 1,则University = 0

我的直觉是先创建一个函数:

University2 <- function(a = Intelligence, b = Luck, nPoints = 2000){
  y = a + b
  return(y)
}

它有2000个观察值,并将y定义为+ b,其中a =智能,b =运气。我不是所有经历过R的人,所以我的问题是我的决赛&#34;大学&#34;值,我需要告诉R:University = 1,如果a + b&gt; 1。

3 个答案:

答案 0 :(得分:3)

University <- floor(Intelligence+Luck)

答案 1 :(得分:2)

你的意思是:

University <- ifelse(Intelligence+Luck > 1, 1, 0)

答案 2 :(得分:0)

使用dplyr将简化您的工作流程并使您的代码更易于阅读,我建议case_when(就像SQL CASE WHEN那样非常有用);

library(tidyverse)

# make a tibble of your data
df <- data.frame(Intelligence, Luck)
df <- as.tibble(df)

df <- 
  df %>% 
  # new column, adds intelligence + Luck
  mutate (intelligence_luck_sum = Intelligence + Luck) %>% 
  # combine 'case_when' and 'mutate', create new variable 'University'
  # and perform the case when test for 2 scenarios
  mutate ( 
    University = case_when(
      intelligence_luck_sum > 1 ~ '1'
      , intelligence_luck_sum < 1 ~ '0')) %>% 
  # remove the 'intelligence' variable
  select(-intelligence_luck_sum)