Как отформатировать фрейм данных каждого столбца с относительным форматом? - PullRequest
0 голосов
/ 06 декабря 2018

С учетом фрейма данных:

set.seed(1)
df <- data.frame(a=1:10,b=runif(10),c=10*runif(10),d=101:110)

формат каждого столбца, который я ожидаю:

%2s , %3.1f, %4.3f, %4.1f

как применить fmt к относительным столбцам?

Дополнение: фрейм данных будет сохранен как текстовый файл, который является входными данными другого программного обеспечения.Поэтому мне нужно сохранить каждый столбец в виде числовых данных, кроме первого столбца.

Возможно, я проигнорировал формат R. Дальнейшее объяснение: формат %3.1f означает, что эта ячейка имеет ширину 3 символа и 1 десятичную цифру.Это число, а не символ (строка).%2s означает вывод шириной 2 символа длины и т. Д.

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете использовать Map для перебора двух входов.Затем вы можете назначить в data.frame:

df[] <-  Map(sprintf, fmt, df)

или использовать это для создания отдельного data.frame:

"[<-"(df,,value = Map(sprintf, fmt, df))
#    a   b     c     d
#1   1 0.3 2.060 101.0
#2   2 0.4 1.766 102.0
#3   3 0.6 6.870 103.0
#4   4 0.9 3.841 104.0
#5   5 0.2 7.698 105.0
#6   6 0.9 4.977 106.0
#7   7 0.9 7.176 107.0
#8   8 0.7 9.919 108.0
#9   9 0.6 3.800 109.0
#10 10 0.1 7.774 110.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...