我的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 #.
现在,我试着:
mutate(
CNC_DUR = if_else(CNC_count[row_number() -1] =="1","speak_dur",0,0))我想最后一句应该是其他的,希望能得到帮助,谢谢。
发布于 2021-05-03 23:35:34
以下是一个潜在的解决方案:
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 然后,如果您想使用管道分隔符编写文件:
write.table(x = df2, file = "file_with_new_columns.txt", sep = "|", row.names = FALSE)https://stackoverflow.com/questions/67376947
复制相似问题