首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用条件从现有变量创建新变量

使用条件从现有变量创建新变量
EN

Stack Overflow用户
提问于 2016-08-09 17:03:21
回答 1查看 591关注 0票数 1

我正在尝试从我现有的变量创建一个新的变量,并且它满足一个条件。

代码语言:javascript
复制
  startyear endyear ongoingasofyear imposition
  (dbl)   (dbl)           (dbl)      (dbl)
1      1945    1947              NA          1
2      1946    1949              NA          1
3      1946    1993              NA          1
4      1946    1960              NA          1
5      1946    1946              NA          1
6      1946      NA            1946          1

我想创建一个名为sanctions_period的变量。我希望它的范围从startyear - endyear,当它们可用时,然后范围从startyear -持续,如果endyear是NA,而ongoing then不是NA。

它应该是这样的:

代码语言:javascript
复制
      startyear endyear ongoingasofyear imposition sanctions_period
  (dbl)   (dbl)           (dbl)      (dbl)
1      1945    1947              NA          1     1945-1947
2      1946    1949              NA          1     1946-1949
3      1946    1993              NA          1     1946-1993
4      1946    1960              NA          1     1946-1960
5      1946    1946              NA          1     1946-1946
6      1946      NA            1946          1     1946-ongoing

我该怎么做呢?我尝试过ifelse的不同设置,但到目前为止还没有成功。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 17:05:25

因为我们使用的是'tbl_df',所以使用dplyr的一个选项是使用mutate通过paste将列组合在一起来创建变量,并且可以使用ifelse条件来说明'endyear‘中的NA元素。

代码语言:javascript
复制
 library(dplyr)
 df1 %>%
     mutate(sanctions_period = ifelse(is.na(endyear) & !is.na(ongoingasofyear), 
         paste(startyear, "ongoing", sep="-"), paste(startyear, endyear, sep="-")))
#     startyear endyear ongoingasofyear imposition sanctions_period
#1      1945    1947              NA          1        1945-1947
#2      1946    1949              NA          1        1946-1949
#3      1946    1993              NA          1        1946-1993
#4      1946    1960              NA          1        1946-1960
#5      1946    1946              NA          1        1946-1946
#6      1946      NA            1946          1     1946-ongoing
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38846385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档