首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将现有值从列插入到R中的true语句(如果有其他语句)

将现有值从列插入到R中的true语句(如果有其他语句)
EN

Stack Overflow用户
提问于 2021-05-03 23:24:28
回答 1查看 99关注 0票数 0

我的df看起来是这样的:

x Speak_Dur|CNC_count|TNT_count|.

\x{e76f}\x{e76f}0

0.0.1

4.3\x{e76f}

\x{e76f}()

我想使用if using创建几个新列。

举个例子,假设我只有这3列。

因此,我想根据这个条件为我已经拥有的每个"X_count“变量创建一个新列:

新列"CNC_dur"= if cnc_count=1,然后粘贴同一行中的"speak_dur“值。

新列"TNT_dur“= if tnt_count=1,然后粘贴同一行中的"speak_dur”值。

结果应是:

Speak_Dur|CNC_count|TNT_count|CNC_dur|TNT_dur| |

\x{e76f}\x{e76f}=.

0

\x{e76f}\x{e76f}=.

#^5.5#^5.5#^5.5#.=‘5’>1\x{e76f}#^5.5#^5.5#^5.5 #.

现在,我试着:

代码语言:javascript
复制
mutate(

CNC_DUR = if_else(CNC_count[row_number() -1] =="1","speak_dur",0,0))

我想最后一句应该是其他的,希望能得到帮助,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-05-03 23:35:34

以下是一个潜在的解决方案:

代码语言:javascript
复制
library(tidyverse)
df <- tribble(~"Speak_Dur", ~"CNC_count", ~"TNT_count",
0.5, 1, 0,
0.8, 0, 1,
4.3, NA, 1,
5.5, 1, 0)

df2 <- df %>% 
  mutate(CNC_dur = ifelse(CNC_count == 1, Speak_Dur, 0),
         TNT_Dur = ifelse(TNT_count == 1, Speak_Dur, 0))
df2
#> A tibble: 4 x 5
#>  Speak_Dur CNC_count TNT_count CNC_dur TNT_Dur
#>      <dbl>     <dbl>     <dbl>   <dbl>   <dbl>
#>1       0.5         1         0     0.5     0  
#>2       0.8         0         1     0       0.8
#>3       4.3        NA         1    NA       4.3
#>4       5.5         1         0     5.5     0  

然后,如果您想使用管道分隔符编写文件:

代码语言:javascript
复制
write.table(x = df2, file = "file_with_new_columns.txt", sep = "|", row.names = FALSE)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67376947

复制
相关文章

相似问题

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