我有一个类似的数据框(只是更长)。我的目标是将 [2] 的用户名复制到 [8],将 [5] 的用户名复制到 [7]。我知道复制很奇怪,但这是有原因的。
我一直在尝试用 ifelse 来解决它:
df$Username <- ifelse(df$Name == df$Name, df$Username, NA)
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我相信它相当简单,但在 stackoverlow 上找不到任何函数。预先感谢您的任何帮助。
# A tibble: 6 x 2
Name Username
<chr> <chr>
1 ZiadAboultaif ziad_aboultaif
2 ScottAitchison ScottAAitchison
3 DanAlbas DanAlbas
4 JohnAldag jwaldag
5 OmarAlghabra OmarAlghabra
6 ShafqatAli Shafqat_Ali_1
7 OmarAlghabra NA
8 ScottAitchison NA
# Reproducilbe data:
df <- structure(list(Name = c("ZiadAboultaif", "ScottAitchison", "DanAlbas",
"JohnAldag", "OmarAlghabra", "ShafqatAli"), Username = c("ziad_aboultaif",
"ScottAAitchison", "DanAlbas", "jwaldag", "OmarAlghabra", "Shafqat_Ali_1"
)), row.names = c(NA, -6L), …Run Code Online (Sandbox Code Playgroud) 所以我有一个带有 ID 部分的数据框,看起来像这样
ID
Anna1
Anna1
Anton2
Anton2
Run Code Online (Sandbox Code Playgroud)
我想创建一个新变量,如果 ID 中有 1,则包含“1”;如果变量中有“2”,则包含 2。
到目前为止我已经想出了这个
Fixations$test <- (ifelse(Fixations$ID %in% 1 ,"1",
ifelse(Fixations$ID %in% 2, "2", NA)))
Run Code Online (Sandbox Code Playgroud)
显然,它不起作用,因为我对字符串的引用是错误的。谁能帮我这个?
提前致谢!