У меня есть таблица базы данных, которую я помещаю в кадр данных R
Id fName lName Personal_Number Score Country_Of_Birth
1 martin Ingram 1-(939)-(106)-(9049) 59.099 Tanzania
2 trevor Richards 1-(214)-(725)-(5955) 65.266 Eritrea
3 fitzgerald Barron 1-(312)-(980)-(1499) 65.052 Kiribati
Я только узнаю, какой столбец округлить во время выполнения, в приведенном выше примере есть только 1 такой столбец, однако моя таблицаможет иметь любое количество столбцов, к которым может быть применено округление.
Таким образом, мое имя столбца является производным от переменной col
, мои цифры округления происходят от ruleData
, и я пишу:
mydataframe[[col]] <- round(mydataframe[,col]), ruleData)
Это дает мне:
Error:Error in round(mydataframe[[col]]), ruleData):
Error: non-numeric argument to mathematical function
Я понимаю, что это потому, что функция round
ищет числовой вектор, однако, когда я пытаюсь проверить режим в mydataframe
, я получаю:
Id fName lName contact
Output: "numeric" "character" "character" "character"
Output: Score Country_Of_Birth
Output: "numeric" "character"
Проблема: - Мне нужно использовать фрейм данных, поэтому я не могу просто изменить его на вектор / матрицу или таблицу данных.- Имя моего столбца и точность для функции округления всегда происходят из переменных.- Результат должен быть таким же mydataframe
, со значениями Score
с 2 цифрами после десятичной запятой (обратите внимание, что значения в Score теперь имеют 2 цифры после десятичной)
Id fName lName Personal_Number Score Country_Of_Birth
1 martin Ingram 1-(939)-(106)-(9049) 59.10 Tanzania
2 trevor Richards 1-(214)-(725)-(5955) 65.27 Eritrea
3 fitzgerald Barron 1-(312)-(980)-(1499) 65.05 Kiribati