2
我有一個數據框,其格式不正確。例如,我在第一行的數據的ID爲「1」,但它的格式必須是:tt0000001
,ID「23212」必須是:tt0023212
自定義字符串填充
有沒有一種方法可以將所有數據轉換爲一個列成這種格式?
我有一個數據框,其格式不正確。例如,我在第一行的數據的ID爲「1」,但它的格式必須是:tt0000001
,ID「23212」必須是:tt0023212
自定義字符串填充
有沒有一種方法可以將所有數據轉換爲一個列成這種格式?
使用sprintf
:
sprintf("tt%07d", 1)
sprintf("tt%07d", 23212)
編輯
是的,你可以爲每列做到這一點:
vec <- seq(37, 2000, 100)
sprintf("tt%07d", vec)
[1] "tt0000037" "tt0000137" "tt0000237" "tt0000337"
[5] "tt0000437" "tt0000537" "tt0000637" "tt0000737"
[9] "tt0000837" "tt0000937" "tt0001037" "tt0001137"
[13] "tt00" "tt0001337" "tt0001437" "tt0001537"
[17] "tt0001637" "tt0001737" "tt0001837" "tt0001937"
考慮到vec
是你的id列(如df$id
)。
使用stringr包:
#dummy data
df <- data.frame(id = c("1","23212"))
library(stringr)
df$id1 <- paste0("tt", str_pad(myNames, 7, "left", "0"))
#result
df
# id id1
# 1 1 tt0000001
# 2 23212 tt0023212
謝謝,是有辦法,我可以在數據幀中的所有行做到這一點?我有21米他們所以不想手動爲每個:) – Benirving92
謝謝!我做的只是它的工作。但是,它會打印結果而不是更新我的數據框。有沒有更新數據框的方法? – Benirving92
只需將新值賦給它:'df $ id < - sprintf(「tt%07d」,df $ id)' –