Например, позволяет использовать следующую dataframe, состоящую из строк:R: Применяя функцию к каждому элементу dataframe
df <- data.frame(X = LETTERS[1:3], Y = LETTERS[4:6], row.names = c("r1", "r2", "r3"), stringsAsFactors = F)
> df
X Y
r1 A D
r2 B E
r3 C F
Теперь я хотел бы применить эту функцию к каждому элементу dataframe:
my_f <- function(x) paste0(x, x)
Который должен произвести этот результат:
>df
X Y
r1 AA DD
r2 BB EE
r3 CC FF
Я использую вложенным для петель:
for (i in 1:dim(df)[1]) {
for (j in 1:dim(df)[2]) {
df[i, j] = my_f(df[i, j])
}
}
Интересно, существует ли более короткий/быстрый способ достижения такого же результата? Обратите внимание, что вывод должен быть файловой рамкой с именами одинаковых строк и колонок.
op'f пользовательская функция также работает здесь – agenis
@agenis Да, я думаю, что 'strrep' должен быть более быстрым – akrun
Разум объясняя разницу между' 'df'and ФР [] '? Если я использую 'df [] <- apply (df, 2, my_f)', он работает, но без '[]' он теряет имена розеров. – Haboryme