在R中将单个字符串转换为数字向量。

14 浏览
0 Comments

在R中将单个字符串转换为数字向量。

我正在尝试使用readline来允许用户输入一个数字索引向量,如c(1, 2, 10)c(1:1300, 1500:2000),但是我在将返回的字符转换为数字向量时遇到了问题。我在这篇帖子中看到了如何对特定枚举向量(如c(1, 2, 10))进行转换,但是对于像c(1:1300, 1500:2000)这样的情况,使用那种方法非常不实际。有没有一种通用的方法可以做到这一点,而不涉及大量条件字符串分割?就像下面的伪代码所示,我可以看到类似于这样的方法可以工作,只是似乎应该有一种更自然的方法来实现这一点。

# 伪代码
string.convert <- function(s){
    split0 = 从s中去除c() 
    split1 = 以逗号分割split0的元素
    split2 = 以冒号分割split1的元素
    split3 = 将split2的元素应用as.numeric
    split4 = 在split3的元素之间插入整数,条件是使用冒号分隔
    返回concatenated结果split4的
}

0
0 Comments

问题:将单个字符串转换为数值向量的原因及解决方法

在R语言中,有时候我们需要将一个单个的字符串转换为数值向量。这种情况可能会出现在需要对字符串中的数字进行计算或统计分析时。然而,R语言中的函数并不直接支持将单个字符串转换为数值向量,因此我们需要找到一种解决方法。

解决方法是使用eval()和parse()函数结合起来完成转换。我们可以使用以下代码来实现将单个字符串转换为数值向量的操作:eval(parse(text='1:5'))

上述代码中,我们首先使用parse()函数将字符串'1:5'解析为R语言的表达式。然后,使用eval()函数对解析后的表达式进行求值,得到数值向量1, 2, 3, 4, 5。

通过这种方法,我们可以将单个字符串转换为数值向量,以便进行后续的计算和分析。

0