gpt4 book ai didi

r - 根据 R 中字符串中的字母分配数值

转载 作者:行者123 更新时间:2023-12-04 23:17:42 25 4
gpt4 key购买 nike

我有一个 data.frame,它是一个包含 235,886 行的单列。每行对应一个英语单词。

例如。

> words[10000:10005,1]

[1] anticontagionist anticontagion anticonventional anticonventionalism anticonvul​​sive
[6] Anticor

我想做的是根据其中的字母将每一行转换为一个数字。所以,如果“a”= 1,“b”= 2,“c”= 3,“d”= 4,那么“abcd”= 10。有谁知道这样做的方法?

我的最终目标是拥有一个函数来扫描 data.frame 以获得给定的数值并返回具有该值的所有字符串,即单词。所以,从上面的例子继续,如果我要求值 9,这个函数将返回“dad”和任何其他数值为 9 的行。

最佳答案

您可以使用 strsplit 的组合和 match .我扔了一个 tolower在那里确保我们匹配正确的东西。

这是一个实现这些步骤的函数:

word_value <- function(words) {
temp <- strsplit(tolower(words), "", TRUE)
vapply(temp, function(x) sum(match(x, letters)), integer(1L))
}

这是一个样本向量:
myvec <- c("and", "dad", "cat", "fox", "mom", "add", "dan")

测试一下:
word_value(myvec)
# [1] 19 9 24 45 41 9 19

myvec[word_value(myvec) == 9]
# [1] "dad" "add"

myvec[word_value(myvec) > 20]
# [1] "cat" "fox" "mom"

关于r - 根据 R 中字符串中的字母分配数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36097446/

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