我在数据集la
中有两个变量a和ba 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
答案 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)})