это моя ситуация: У меня есть dataframe, и я хочу применить функцию substr к каждому элементу определенного столбца. Колонку я хочу, чтобы манипулировать containes выражения, как:R: Применить substr к каждому элементу столбца dataframe
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 и надеюсь, что решение совершенно очевидно ...
Благодарим всех вас заранее, Chris!
'ФР [[ "Имена"]] <- SUBSTR (ДФ [[ "Имена" ]], 1, nchar (df [["Имена"]])) 3) 'ie использовать индексирование элемента списка' [['вместо' ['. По крайней мере, это то, что я делаю с кадрами данных :) –
Совет: 'df' было бы гораздо легче создать с помощью' data.frame (Names = x, stringsAsFactors = FALSE) ' –