我想根據相鄰列的值在新列中指定名稱。 我使用一個函數,它接受一個模式並用另一個替換它:轉換指數字符串
sub<-function(pattern, replacement, x, ...) {
result <- x
for (i in 1:length(pattern)) {
result <- gsub(pattern[i], replacement[i], result, ...)
}
result
}
我可以採取如下:
df$x<-as.character(df$x)
df$y<-(sub(c("1A1","1B2", "1.00E+01"),
c("P1", "P2", "P3"), df$x))
因此,DF $ Y將現在包含P1,P2,其中1A1, 1B2以df $ x的形式出現。然而,「1.00E + 02」在df $ y中不給P3,1.00E + 02被複制到它。
我錯過了一些關於指數以及它們如何被讀作模式的東西?
這裏是我的數據表的例子,其中DF $ x是ID和df $ y是名稱:
Name ID
p1 1A1
p2 1B2
1.00E+01 1.00E+01
任何幫助,將不勝感激。 由於MF
閱讀文檔。如果傳遞一個長度大於1的向量作爲'pattern',則只使用其第一個元素。此外,默認情況下,該模式被理解爲正則表達式。 – Roland
對不起,如果我錯了,但如果模式只識別使用的第一個元素,那麼1A1和1B2之間沒有區別,但是有。這只是導致問題的1.00E + 01。 – MRF
我無法重現這一點。如果我嘗試它,只有第一個元素被更改。 – Roland