преобразование нескольких столбцов из символьного в числовой формат в r

Соглашения docstring находятся в PEP-257 с гораздо большей детализацией, чем PEP-8.

Однако докстры, по-видимому, гораздо более личны, чем другие области кода. У разных проектов будет свой собственный стандарт.

Я склонен всегда включать docstrings, потому что они склонны демонстрировать, как использовать функцию и что она делает очень быстро.

Я предпочитаю сохранять согласованность, независимо от длины строки. Мне нравится, как выглядит код, когда отступы и интервалы согласованы. Это означает, что я использую:

def sq(n):
    """
    Return the square of n. 
    """
    return n * n

Over:

def sq(n):
    """Returns the square of n."""
    return n * n

И, как правило, не комментирует первую строку в более длинных docstrings:

def sq(n):
    """
    Return the square of n, accepting all numeric types:

    >>> sq(10)
    100

    >>> sq(10.434)
    108.86835599999999

    Raises a TypeError when input is invalid:

    >>> sq(4*'435')
    Traceback (most recent call last):
      ...
    TypeError: can't multiply sequence by non-int of type 'str'

    """
    return n*n

Значение Я нахожу docstrings, которые начинаются так, как будто это беспорядочно.

def sq(n):
    """Return the squared result. 
    ...

13
задан ec0n0micus 31 March 2014 в 21:11
поделиться

2 ответа

Небольшая корректировка ответов от ARobertson и Kenneth Wilson, который работал на меня.

Выполнение R 3.6.0, с библиотекой (tidyverse) и библиотекой (dplyr) в моей среде:

library(tidyverse)
library(dplyr)
> df %<>% mutate_if(is.character, as.numeric)
Error in df %<>% mutate_if(is.character, as.numeric) : 
  could not find function "%<>%"

я провел некоторое быстрое исследование и нашел это примечание в Hadley" tidyverse руководство по стилю ".

magrittr пакет обеспечивает % <> оператор % как ярлык для изменения объекта на месте. Избегайте этого оператора.

# Good x <- x %>%
           abs() %>%    
           sort()

# Bad x %<>%   
          abs() %>%
          sort()
<час>

Решение

На основе того руководства по стилю:

df_clean <- df %>% mutate_if(is.character, as.numeric)
<час>

Рабочий пример

> df_clean <- df %>% mutate_if(is.character, as.numeric)
Warning messages:
1: NAs introduced by coercion 
2: NAs introduced by coercion 
3: NAs introduced by coercion 
4: NAs introduced by coercion 
5: NAs introduced by coercion 
6: NAs introduced by coercion 
7: NAs introduced by coercion 
8: NAs introduced by coercion 
9: NAs introduced by coercion 
10: NAs introduced by coercion 
> df_clean
# A tibble: 3,599 x 17
   stack datetime            volume BQT90 DBT90 DRT90 DLT90 FBT90  RT90 HTML90 RFT90 RLPP90 RAT90 SRVR90 SSL90 TCP90 group
   <dbl> <dttm>               <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl> <dbl>  <dbl> <dbl>  <dbl> <dbl> <dbl> <dbl>
0
ответ дан 24 October 2019 в 02:30
поделиться

type.convert()

Преобразовывают объект данных в логический, целочисленное, числовое, сложное, символ или фактор как соответствующий.

Посмотрите.

0
ответ дан 24 October 2019 в 02:30
поделиться
Другие вопросы по тегам:

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