2014-09-25 6 views
0

У меня есть набор данных, содержащих как символы, так и числа в R. Я знаю, что я не могу сохранить их в кадре данных, так как столбцы должны иметь одинаковый тип. Поэтому я сохранил их в списке.Как написать разные классы в один лист excel в R

Есть ли способ сохранить этот список в листе Excel, чтобы цифры сохранялись как числа и символы как символы?

Я использую XLConnect са далеки, и это работает для кадра данных, где у вас есть столбцы с или все числовыми значениями или все символами

Заранее спасибо

Пример:

У меня есть несколько измерения разных величин (назовем их a и b).

Эти измерения могут быть либо числом (числовым), либо «n.d.» (персонаж). Например, 3 измерения: Первое: a = 5, b = "n.d." Второй: a = 3, b = 4 Третий: a = "n.d.", b = "n.d."

EDIT:

Решение дается Roland отлично работает:

Encode недостающие значения, как NA в кадре данных, чтобы иметь все столбцы, как числа.
Затем используйте
setMissingValue(wb, value = "n.d.")
, чтобы установить недостающие ячейки на "n.d." в листе Excel

Большое спасибо за ваше время и помочь

+1

dataframe это просто особый вид списка, так что вы должны быть в состоянии иметь как характер и числовые переменные в том же кадре данных (до тех пор, они находятся в разных колонках). Не могли бы вы привести пример того, в каком формате находятся ваши данные? – CephBirk

+0

Это как раз моя проблема! Мои данные состоят из нескольких измерений определенных величин, которые могут либо дать число, либо «n.d.». Поэтому у меня в той же колонке большую часть времени как числа, так и символы. – JohnDoe

+3

Вместо '' n.d. "' вы должны кодировать ваши отсутствующие значения как 'NA', которые могут иметь тип numeric в R. – Roland

ответ

2

Решение дается Roland отлично работает:

Encode недостающие значения, как NA в кадре данных, чтобы иметь все столбцы, как числа.
Затем используйте
setMissingValue(wb, value = "n.d.")
, чтобы установить отсутствующие ячейки на "n.d." в листе Excel

Большое спасибо за ваше время и помочь

0

Учитывая пример:

df=data.frame(a=c(5,'n.d.','n.d.'),b=c('n.d.',4,'n.d.')),

вы можете использовать

write.csv(df,file='data.csv')

Затем вы можете импортировать CSV-файл в Excel вручную.

+0

Этого достаточно или вы хотите сделать все это через R? – CephBirk

+0

Я бы предпочел, чтобы все было автоматизировано через R, но нет никакого способа сделать это. Я могу сделать дополнительный шаг через csv. Однако я не уверен, что это решает мою оригинальную проблему, потому что, насколько я понимаю, кадр данных, а и b все равно должны быть одного типа, который был бы символом как наименьший общий знаменатель ... – JohnDoe

+0

Кроме того, я думаю, что пакет XLConnect работает с наилучшим сохранением фреймов данных в листах Excel напрямую. Поэтому я не думаю, что необходим дополнительный шаг через csv – JohnDoe

Смежные вопросы