Замена точек на запятую в результате регрессии в R [дубликат]

Преобразование Java в Swift 3: (by @JeremyThompson)

protocol _IntType { }
extension Int: _IntType {}


extension Array where Element: _IntType {

    func subsets(to: Int) -> [[Element]]? {

        func sum_up_recursive(_ numbers: [Element], _ target: Int, _ partial: [Element], _ solution: inout [[Element]]) {

            var sum: Int = 0
            for x in partial {
                sum += x as! Int
            }

            if sum == target {
                solution.append(partial)
            }

            guard sum < target else {
                return
            }

            for i in stride(from: 0, to: numbers.count, by: 1) {

                var remaining = [Element]()

                for j in stride(from: i + 1, to: numbers.count, by: 1) {
                    remaining.append(numbers[j])
                }

                var partial_rec = [Element](partial)
                partial_rec.append(numbers[i])

                sum_up_recursive(remaining, target, partial_rec, &solution)
            }
        }

        var solutions = [[Element]]()
        sum_up_recursive(self, to, [Element](), &solutions)

        return solutions.count > 0 ? solutions : nil
    }

}

использование:

let numbers = [3, 9, 8, 4, 5, 7, 10]

if let solution = numbers.subsets(to: 15) {
    print(solution) // output: [[3, 8, 4], [3, 5, 7], [8, 7], [5, 10]]
} else {
    print("not possible")
}
8
задан lmo 1 May 2016 в 15:00
поделиться

3 ответа

Десятичный разделитель, используемый функциями read.table и write.table (и большинство их двоюродных братьев), задается параметром «dec». read.csv2 - это особый случай, когда по умолчанию для dec указано значение «,», а разделитель полей («sep») - «;».

Вы можете изменить выход из печати R, печати и действий функции as.character. Вы меняете его по умолчанию:

 options(OutDec= ",")   # read ?options
 print( pi )
 #[1] 3,141593
 options(OutDec= ",")  # restore default value

Это НЕ приведет к тому, что R будет обрабатывать числовой ввод с консоли по-разному. Это жестко закодировано для "." как разделитель десятичных чисел.

Если вы применили текстовую функцию к объекту таблицы, вы, возможно, могли бы принуждаться от «числового» к «символьному» режиму, поскольку объекты таблицы в R наследуются от «матрицы» "класс.

14
ответ дан 42- 19 August 2018 в 18:18
поделиться
  • 1
    Замечательно!! Это лучше, чем первый ответ, с которым у меня возникли проблемы в некоторых таблицах ... Можно ли изменить знак «ответ»? – ap53 5 May 2013 в 21:18
  • 2
    Да, это абсолютно приемлемо, даже поощрять, чтобы изменить галочку. – 42- 6 May 2013 в 00:48

Исходя из того факта, что вы хотите использовать его с уценкой (Pandoc), насколько я могу видеть из комментария к блогу , где вы ссылались на этот вопрос , я бы также предложил попробовать my pander package :

> library(pander)
> panderOptions('decimal.mark', ',')
> panderOptions('table.split.table', Inf)
> pander(head(iris))

-------------------------------------------------------------------
 Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
-------------- ------------- -------------- ------------- ---------
     5,1            3,5           1,4            0,2       setosa  

     4,9             3            1,4            0,2       setosa  

     4,7            3,2           1,3            0,2       setosa  

     4,6            3,1           1,5            0,2       setosa  

      5             3,6           1,4            0,2       setosa  

     5,4            3,9           1,7            0,4       setosa  
-------------------------------------------------------------------

Или PHP Markdown Дополнительный синтаксис для упрощения использования с помощью knitr:

> pandoc.table(head(iris), style = 'rmarkdown')


|  Sepal.Length  |  Sepal.Width  |  Petal.Length  |  Petal.Width  |  Species  |
|:--------------:|:-------------:|:--------------:|:-------------:|:---------:|
|      5,1       |      3,5      |      1,4       |      0,2      |  setosa   |
|      4,9       |       3       |      1,4       |      0,2      |  setosa   |
|      4,7       |      3,2      |      1,3       |      0,2      |  setosa   |
|      4,6       |      3,1      |      1,5       |      0,2      |  setosa   |
|       5        |      3,6      |      1,4       |      0,2      |  setosa   |
|      5,4       |      3,9      |      1,7       |      0,4      |  setosa   |
0
ответ дан daroczig 19 August 2018 в 18:18
поделиться

Почему вы хотите использовать «,» как десятичный разделитель, в этом случае, как R будет отображать это выражение R

x <- c(2,3) # (two vectors or one). 

Итак, я предполагаю, что вы просто хотите переопределить десятичный разделитель по умолчанию для печати вывода и в этом случае, я думаю, что prettyNum является правильным инструментом.

require(plyr)
head(numcolwise(prettyNum)(iris, dec = ","))

##   Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1          5,1         3,5          1,4         0,2
## 2          4,9           3          1,4         0,2
## 3          4,7         3,2          1,3         0,2
## 4          4,6         3,1          1,5         0,2
## 5            5         3,6          1,4         0,2
## 6          5,4         3,9          1,7         0,4
2
ответ дан dickoa 19 August 2018 в 18:18
поделиться
  • 1
    Да, мне нужно только для вывода. Я никогда раньше не пользовался plyr и не знал numcolwise funtion. Спасибо! – ap53 5 May 2013 в 15:51
Другие вопросы по тегам:

Похожие вопросы: