R 如何使用条件(ifelse)在数据帧中创建新行?
示例:给定一个包含R 如何使用条件(ifelse)在数据帧中创建新行?,r,conditional-statements,plyr,R,Conditional Statements,Plyr,示例:给定一个包含 df1 = data.frame( users=c("1", "1", "2", "2"), projects=c("100", "101", "102", "103"), from=c("0", "111", "0", "106")) | users | projects | from | |-------|----------|------| | 1 | 100 | 0 | | 1 | 101 | 111 | |
df1 = data.frame(
users=c("1", "1", "2", "2"),
projects=c("100", "101", "102", "103"),
from=c("0", "111", "0", "106"))
| users | projects | from |
|-------|----------|------|
| 1 | 100 | 0 |
| 1 | 101 | 111 |
| 2 | 102 | 0 |
| 2 | 103 | 106 |
当“from”列为非零时,我想在dataframe中创建新行,新行将包含相同的用户和project=from值
那我应该
df2 = data.frame(
users=c("1", "1", "1", "2", "2", "2"),
projects=c("100", "101", "111", "102", "103", "106"),
from=c("0", "111", "111","0", "106", "106"))
| users | projects | from |
|-------|----------|------|
| 1 | 100 | 0 |
| 1 | 101 | 111 |
| 1 | 111 | 111 |
| 2 | 102 | 0 |
| 2 | 103 | 106 |
| 2 | 106 | 106 |
我曾想过在ifelse条件下使用rbind,但我做不到
执行此数据帧的推荐方法是什么?谢谢。创建一个包含新行的新数据框,然后将两个数据框绑定在一起
library('tidyverse')
extras <- df1 %>%
filter(from != 0) %>%
mutate(projects = from)
bind_rows(df1, extras) %>%
arrange(users, projects)
#> users projects from
#> 1 1 100 0
#> 2 1 101 111
#> 3 1 111 111
#> 4 2 102 0
#> 5 2 103 106
#> 6 2 106 106
library('tidyverse'))
额外费用%
过滤器(从!=0)%>%
变异(项目=源)
绑定行(df1,附加项)%>%
安排(用户、项目)
#>来自的用户项目
#> 1 1 100 0
#> 2 1 101 111
#> 3 1 111 111
#> 4 2 102 0
#> 5 2 103 106
#> 6 2 106 106
谢谢!我想我需要使用rbind和ifelse,但这样就行了。