readr::read_csv
добавляет атрибуты, которые не обновляются при редактировании данных. Например,
library('tidyverse')
df <- read_csv("A,B,C\na,1,x\nb,1,y\nc,1,z")
# Remove columns with only one distinct entry
no_info <- df %>% sapply(n_distinct)
no_info <- names(no_info[no_info==1])
df2 <- df %>%
select(-no_info)
Осматривая структуру, мы видим, что столбец B все еще присутствует в атрибутах df2
:
> str(df)
Classes ‘spec_tbl_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 3 obs. of 3 variables:
$ A: chr "a" "b" "c"
$ B: num 1 1 1
$ C: chr "x" "y" "z"
- attr(*, "spec")=
.. cols(
.. A = col_character(),
.. B = col_double(),
.. C = col_character()
.. )
> str(df2)
Classes ‘spec_tbl_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 3 obs. of 2 variables:
$ A: chr "a" "b" "c"
$ C: chr "x" "y" "z"
- attr(*, "spec")=
.. cols(
.. A = col_character(),
.. B = col_double(),
.. C = col_character()
.. )
> attributes(df2)
$class
[1] "spec_tbl_df" "tbl_df" "tbl" "data.frame"
$row.names
[1] 1 2 3
$spec
cols(
A = col_character(),
B = col_double(),
C = col_character()
)
$names
[1] "A" "C"
>
Как я могу удалить столбцы (или любые другие обновления данных) и точно отразить изменения в новой структуре данных и атрибутах?
data.frame(df2)
. - person joran   schedule 02.01.2019