-1

我有一个包含这些列的数据框

ID     X    Y  
x1.1  0.1  0.2  
x1.2  0.1  0.2  
x1.3  0.1  0.2  
x2.1  0.3  0.4  
x2.2  0.3  0.4  
x3.1  0.5  0.6  
x3.2  0.5  0.6  
...   0.1  0.2

我想将 x1.i 的所有 ID 更改为 x1,将 x2.i 更改为 x2,依此类推。所以我的数据框看起来像这样:

ID     X    Y   
x1    0.1  0.2  
x1    0.1  0.2  
x1    0.1  0.2  
x2    0.3  0.4  
x2    0.3  0.4  
x3    0.5  0.6  
x3    0.5  0.6  
...   ...  ...

我怎么能不使用循环呢?

感谢您提前回复!

4

1 回答 1

1

我们可以使用sub.后面的其他字符 ( .*) 匹配到字符串的末尾并将其替换为""

df1$ID <- sub("\\..*", "", df1$ID)
df1
#  ID   X   Y
#1 x1 0.1 0.2
#2 x1 0.1 0.2
#3 x1 0.1 0.2
#4 x2 0.3 0.4
#5 x2 0.3 0.4
#6 x3 0.5 0.6
#7 x3 0.5 0.6
于 2016-12-31T05:49:20.053 回答