从变量中提取字符

时间:2016-05-24 09:50:25

标签: r

我在数据集la

中有两个变量a和b
a                                b
dflsfufdsbhfsdjklfhsajkdfksf     5
sdnfsdhfuisdflkjsdnjkfksflsdfk   8

我想创建一个新的变量c,这样我就可以从变量a中提取字符a从位置(可变b的值)到8个字符。

以下是所需的输出

c
fufdsbhf
fuisdflk

我使用了以下代码。

la$c[i1] <-substr(la$a[i1],la$b[i1],8)

但是上面给出的结果低于结果

c
fufd
f

3 个答案:

答案 0 :(得分:2)

这应该这样做,

df$c <- substr(df$a, df$b, df$b+7)
df$c
#[1] "fufdsbhf" "fuisdflk"

答案 1 :(得分:1)

stop中的substr选项定义要停止的字符向量中的哪个字符,而不是start后要占用的字符数。

所以这应该这样做:

la$c[i] <- substr(la$a[i], la$b[i], la$b[i]+7)

答案 2 :(得分:0)

如果没有loop,您可以对apply

使用dataframe函数
ab$c <- sapply(ab, function(x){substr(x,ab$b,ab$b+7)})