我的数据集中有一个字符列,我想根据两个条件从其中提取字符串的一部分:
a)如果字符串以“ Therapist:”开头,则将字符串分为两列:一列包含“ Therapist”一词,另一列包含其余文本。
b)如果它是“患者:”,则将该字符串分成两列:一列包含单词“患者”,另一列包含其余文本。
我一直遇到的问题是我不知道如何在R中创建if语句。我是新手,但非常愿意学习。即使在谷歌搜索(stackoverflow等)并尝试使用其他功能之后,我仍然感到茫然。
我拥有的数据示例:
> data $ speech [1:5]
[1]“治疗师:好的,我们回来了……”
[2]“患者:嗯-嗯。”
[3]“治疗师:…几个小时后……”
[4]“患者:嗯-嗯。”
[5]“治疗师:嗯……在会后,让我了解一下自己的想法和感觉。”
我真的很感激。
谢谢!
答案 0 :(得分:0)
此命令创建一个两列数据框:
12.100000
结果:
as.data.frame(do.call(rbind, strsplit(data$speech, ": ")))
答案 1 :(得分:0)
您可以在separate()
包中使用{tidyr}
。
library(tidyr)
df <- data.frame(
speech = c(
"Therapist: Okay, we’re back…",
"Patient: Hmm-hmm.",
"Therapist: … after a : couple of hours…",
"Patient: Hmm-hmm.",
"Therapist: Hmm… Catch me up on what you’ve : found yourself thinking and feeling after the session."
)
)
separate(df, speech, into = c("Name", "Talk"), sep = ":", extra = "merge")
Name Talk
1 Therapist Okay, we’re back…
2 Patient Hmm-hmm.
3 Therapist … after a : couple of hours…
4 Patient Hmm-hmm.
5 Therapist Hmm… Catch me up on what you’ve : found yourself thinking and feeling after the session.
我使用自变量extra = "merge"
处理讲话中:
的存在。