簡體   English   中英

R:將substr應用於dataframe列的每個元素

[英]R: Apply substr to each element of a dataframe column

這是我的情況:我有一個數據幀,我想將substr函數應用於特定列的每個元素。 我要操縱的列包含如下表達式:

x = c("name1_01", "name2_02", "name3_01")
df = data.frame(x)
colnames(df) = ("Names")
df["Names"] = sapply(df["Names"], as.character)
df
# Names
# 1 name1_01
# 2 name2_01
# 3 name3_01

現在我想要刪除特定列中每個條目的最后3位數字。 我只是嘗試了substr,這不是我想要的東西:

df["Names"] = substr(df["Names"], 1,5)
df["Names"]
# Names
# 1 c("name1
# 2 c("name1
# 3 c("name1

但是,如果我將substr應用於單個元素,我會得到正確的結果:

df[1,"Names"] = substr(df[1,"Names"], 1,5)
df[1,"Names"]
# Names
# [1,] "name1"

我已經嘗試過很多東西(我也嘗試過為子目錄而煩惱)但是我沒有得到它。 我對R很新,希望解決方案很明顯......

謝謝你們所有人,克里斯!

使用dplyr mutate()

library(dplyr)
df %>%
  mutate(Names = substr(Names, 1, 5))

嘗試

substr(df[,'Names'], 1, nchar(df[,'Names'])-3)

要么

sub('...$', '', df[,'Names'])

sub('...$', '', as.character(df$Names))
#[1] "name1" "name2" "name3"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM