Если у вас есть символ и число в одном столбце, по умолчанию используется символ, и вы не можете округлить его.
Вы должны использовать пользовательскую функцию:
library(purrr)
library(dplyr)
df = data.frame(
ColA=c("A","B","C"),
ColB=c(56.568,60.596,"A"),
ColC=c(45.590,"B",78.456)
)
# you can see they are converted to factor
str(df)
###function to round numbers and convert them back to characters
convertCol = function(x){
y = round(suppressWarnings(as.numeric(as.character(x))),1)
y = as.character(y)
y[is.na(y)] = as.character(x[is.na(y)])
y
}
df %>% map_df(convertCol)
Тем не менее,невозможно иметь как символ, так и число в одном столбце. А переключение между одним и другим может быть совершенно безумным