我有一张桌子tf
带有列标题的值formant vowel length IL SG
.
这就是我获取它们的值的方式:
f1a <- subset(tf, tf$vowel=='a' & tf$formant=='F1')$IL
f2a <- subset(tf, tf$vowel=='a' & tf$formant=='F2')$IL
f1e <- subset(tf, tf$vowel=='e' & tf$formant=='F1')$IL
f2e <- subset(tf, tf$vowel=='e' & tf$formant=='F2')$IL
有没有办法用给定的循环重写它vowels <- c('a', 'e', 'i', 'o', 'u')
?或者还有其他方法吗?
一个办法:split
通过使用split
,只需一行即可轻松实现上述内容:
fvowels = split(tf$IL, paste(tolower(tf$formant), tf$vowel, sep=""))
Where:
-
split
重新整理数据tf$IL
根据论证的第二部分;
-
paste
将项目转换为后连接它们string
;
-
tolower
将字符更改为小写。
结果为fvowels
是一组数据f1a
to f3u
.
看一眼split
tf <- data.frame(
formant = sample(c("F1","F2"), 100, T),
vowels = sample(c('a', 'e', 'i', 'o', 'u'), 100, T),
IL = runif(100)
)
split(tf$IL, paste(tolower(tf$formant), tf$vowels, sep=""))
它为您提供带有分隔数据的命名列表。你可以assign
or attach
如果您希望将其作为单独的变量,则将其添加到全局工作区,但我建议使用列表(您可以例如lapply
超过列表或轻松保存)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)