这就是我所拥有的:
condition uncomfortable
<fct> <dbl>
fichero 1
fichero 1
realhero 1
realhero 2
ficvillain 4
ficvillain 5
realvillain 8
realvillain 3
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到这个:
fictionality character type uncomfortable
fic hero 1
fic hero 1
real hero 1
real hero 2
fic villain 4
fic villain 5
real villain 8
real villain 3
Run Code Online (Sandbox Code Playgroud)
也许separate()和strsplit()在这里很有用,但我不知道如何使用它们。
您可以使用extract从tidyr:
tidyr::extract(df, condition, c('fictionality', 'type'), '(fic|real)(hero|villain)')
# fictionality type uncomfortable
#1 fic hero 1
#2 fic hero 1
#3 real hero 1
#4 real hero 2
#5 fic villain 4
#6 fic villain 5
#7 real villain 8
#8 real villain 3
Run Code Online (Sandbox Code Playgroud)
或者在基数 R 中:
transform(df, fictionality = sub('hero|villain', '', condition),
type = sub('fic|real', '', condition))
Run Code Online (Sandbox Code Playgroud)
数据
df <- structure(list(condition = c("fichero", "fichero", "realhero",
"realhero", "ficvillain", "ficvillain", "realvillain", "realvillain"
), uncomfortable = c(1L, 1L, 1L, 2L, 4L, 5L, 8L, 3L)),
class = "data.frame", row.names = c(NA, -8L))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |