I am not able to figure it out. I tried to google it, but I didn't get it.
That seems to be a normal feature of data frames read with readr::read_csv() and possibly other functions. You can get a data frame showing the detected read problems, if any, with the problems() function. Here is an example of reading in a csv file with no problems.
DF <- readr::read_csv("Dummy2.csv", ) Rows: 15 Columns: 2 ── Column specification ────────────────────────────────────────────────────── Delimiter: "," chr (2): Name1, Name2 ℹ Use `spec()` to retrieve the full column specification for this data. ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message. str(DF) spec_tbl_df [15 × 2] (S3: spec_tbl_df/tbl_df/tbl/data.frame) $ Name1: chr [1:15] "rugby" "soccer" "basquet" "voley" ... $ Name2: chr [1:15] "sport1" "sport2" "sport1" "sport2" ... - attr(*, "spec")= .. cols( .. Name1 = col_character(), .. Name2 = col_character() .. ) - attr(*, "problems")=<externalptr> readr::problems(DF) # A tibble: 0 × 5 # … with 5 variables: row <int>, col <int>, expected <chr>, actual <chr>, # file <chr> # ℹ Use `colnames()` to see all variable names
R generally holds everything in memory, but sometimes things don't fit. In that case, the
externalptr attribute is set, which is a pointer object to a large binary object residing out of RAM somewhere. Like any other object in
R (where everything is an object) it has properties. In this case it includes the attr
problems that was set on the return from
str(df1) possibly because
df1 is a large object, already in memory, and another copy was made for the benefit of
str(). Think of it like instructions to a courier driver to pick up a package from an address; the driver doesn't know what will be in the package.
The specific problem may have something to do with the
df1, specifically its
spec_tbl_df subclass. The following hocus pocus might work
class(df1) <- c("tbl_df", "tbl", "data.frame")
If you are reading this in from csv, go back and use
read.csv in preference to
readr::read_csv if that's what you did. That will avoid creating a tibble, giving just a data frame and will eliminate
spc_tbl_df as a potential root cause of the problem. Ordinary users aren't supposed to know this kind of stuff.
I really appreciate your pure intention of sharing knowledge with me. Thank you so much.
Thank Q for the input and for sharing your knowledge with me.