У меня есть числовой вектор, который я импортировал из excel, который отформатирован «странным» способом. Например: 12.000 означает 12000. Я хочу преобразовать все числовые переменные с десятичными знаками для целых значений (в этом примере умножение на 1000 - так как R читает 12.000 как 12, и я действительно хочу 12000). Я попытался преобразовать его в символ, а затем манипулировать им, чтобы добавить нули. Я не думаю, что это лучший способ, но то, что я пытаюсь выглядит так:преобразовать числовой вектор в другой цифровой вектор
vec <- c(12.000, 5.300, 5.000, 33.400, 340, 3200)
vec <- as.character(vec)
> vec
[1] "12" "5.3" "5" "33.4" "340" "3200"
x <- "([0 -9]{1})"
xx <- "([0 -9]{2})"
x.x <- "([0 -9]{1}\\.[0 -9]{1})"
xx.x <- "([0 -9]{2}\\.[0 -9]{1})"
Я создал это регулярные выражения так, что я мог сделать, это создать условие, что если Grep (х, VEC) true, то я делаю: paste0 ("000", vec), когда vec истинно в установленном состоянии. Моя идея состоит в том, чтобы сделать это для всех возможных случаев: добавьте «000», если x или если xx & добавить «00», если x.x или если xx.x
Есть ли у кого-нибудь идеи, что я могу сделать? Если есть более простая идея?
спасибо !!
Пожалуйста, покажите желаемый результат. Почему бы не попытаться прочитать его с помощью 'colClasses =" character "', а затем использовать 'as.numeric (gsub (" [.] "," ", Df $ V1))' –
Неясно, как содержимое 'vec 'был получен/прочитан? Должно быть решение для восходящего потока. – Benjamin
Как импортировать данные из Excel; сохранить его как CSV в первую очередь? Является ли ваша проблема потому, что файл использует континентальный (европейский) цифровой формат? Если это так, вы можете проверить верный ответ в этом вопросе. http://stackoverflow.com/questions/6123378/how-to-read-in-numbers-with-a-comma-as-decimal-separator – Ricky