gpt4 book ai didi

r - 循环向量(R 中的自省(introspection)?)或其他方法

转载 作者:行者123 更新时间:2023-12-02 01:54:31 28 4
gpt4 key购买 nike

我有一张 table 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=""))

地点:

  • split重新整理 tf$IL 中的数据根据论证的第二部分;
  • paste将项目转换为 string 后连接它们;
  • tolower将字符更改为小写。

结果为fvowels是来自f1a的一组数据至f3u

最佳答案

看看分割

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=""))

它为您提供带有分隔数据的命名列表。如果您希望将其作为单独的变量,您可以将其分配附加到全局工作区,但我建议使用列表(例如,您可以lapply)轻松列出或保存)。

关于r - 循环向量(R 中的自省(introspection)?)或其他方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002707/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com