How to merge dataframes ? Error in UseMethod(tbl_vars) : no applicable method for 'tbl_vars' applied to an object of class list
There seems to be a problem with your reading function.
The output is not a common dataframe object, but rather some sort of list containing only a dataframe object.
Indeed, this line seems to work and give a proper merged dataframe:
full_join(corpusVars$corpusVars, factivadf$factivadf, by = "doc_id")
Of note, as Chris said, .internal.selfref = <pointer: 0x0000024403b11ef0>
should not be included and I had to remove it from your dput
output for the example to work. This indeed seems to be related to fread
:
Warning: 'Invalid .internal.selfref detected' when adding a column to a data.table returned from a function
R code: no applicable method for 'tbl_vars' applied to an object of class character
This is more of a demonstration than an answer, but there is nothing wrong with the code in the question; it should not cause the reported error in the latest versions of R and dplyr.
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
df_cor <- mtcars %>% mutate_if(is.character, as.factor)
df_cor <- df_cor %>% mutate_if(is.factor, as.numeric)
df_cor
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
#> Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
#> Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
#> Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
#> Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
#> Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
#> Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
#> Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
#> Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
#> Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
#> Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
#> Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
#> Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
#> Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
#> Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
#> Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
#> Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
#> Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
#> Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
#> Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
#> Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
#> AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
#> Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
#> Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
#> Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
#> Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
#> Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
#> Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
#> Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
#> Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
#> Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
Created on 2022-03-21 by the reprex package (v2.0.1)
how to fix no applicable method for 'tbl_vars' applied to an object of class NULL error in Shiny
A simple fix before the infile
statement would solve
req(input$xlsxfile)
-server
server <- function(input, output) {
# File handler ----
mydata <- reactive({
req(input$xlsxfile)
inFile <- input$xlsxfile
req(input$xlsxfile,
file.exists(input$xlsxfile$datapath))
openxlsx::read.xlsx(xlsxFile = inFile$datapath,
sheet = 1 ,
detectDates = TRUE,
sep.names = "_")
})
# Dynamically generate UI input when data is uploaded, only sow numeric columns ----
output$checkbox <- renderUI({
selectInput(inputId = "select_var",
label = "Select variables",
choices = c("", names(mydata() %>%
dplyr::select_if(is.numeric))),
selected = NULL,
multiple = FALSE)
})
# Select columns to print ----
df_sel <- reactive({
req(input$select_var)
df_sel <- mydata() %>%
dplyr::select(input$select_var, date)
})
# Same as above but for global.R variable ----
output$checkbox_2 <- renderUI({
selectInput(inputId = "select_var_2",
label = "Select variables",
choices = c("", names(local_iris %>%
dplyr::select_if(is.numeric))),
selected = NULL,
multiple = FALSE)
})
df_sel_global <- reactive({
req(input$select_var_2)
df_sel_global <- local_iris %>%
dplyr::select(input$select_var_2, Date)
})
# Join the dataframes together based on a key ----
joined_dfs <- reactive({
df_joi <- dplyr::inner_join(df_sel(), df_sel_global(), by= c("date" = "Date")) %>%
dplyr::select(input$select_var,input$select_var_2)
})
# Render data frame ----
output$contents <- DT::renderDT(server = FALSE, {
DT::datatable(
if(input$disp == "head") {
head(joined_dfs())
}
else {
joined_dfs()
}, filter = 'top',
extensions = c('Buttons'),
options = list(scrollY = 600,
scrollX = TRUE,
pageLength = 20,
dom = '<"float-left"l><"float-right"f>rt<"row"<"col-sm-4"B><"col-sm-4"i><"col-sm-4"p>>',
lengthMenu= list(c(20, 40, 60, -1),
c('20', '40', '60','All')),
scrollCollapse= TRUE,
lengthChange = TRUE,
widthChange= TRUE,
rownames = TRUE)
)
})
}
-testing
x no applicable method for 'tbl_vars' applied to an object of class c('double', 'numeric')
The issue is with count
used inside the summarise
. It would be n()
instead of count
library(dplyr)
df %>%
group_by(manager_id) %>%
summarise(number_dr = n(), .groups = 'drop')
There is no need to select
after the group by summarise step as the columns remaining are only 'manager_id' and 'number_dr'
count
expects a data.frame
or tibble
df %>%
count(manager_id)
Getting an error in using foreach in R - no applicable method for 'filter' applied to an object of class list
You need to be careful of operator precedence here. Enclose your loop body here in braces to be clear
res <- foreach(ID = 1:10) %do%
{ tbl %>% filter(id == ID) }
Otherwise you are running
res <- (foreach(ID = 1:10) %do% tbl) %>%
filter(id == ID)
which isn't what you seem to want in this case.
Related Topics
Regex to Replace Comma to Dot Separator
Combing a Categorical Variable to Create a New Categorical Variable in R
How to Declare a Vector of Zeros in R
How to Import Multiple .Csv Files At Once
Split Column At Delimiter in Data Frame
Plot Two Graphs in Same Plot in R
Run R Script from Command Line
Remove 'A' from Legend When Using Aesthetics and Geom_Text
Extracting Specific Columns from a Data Frame
Numeric Comparison Difficulty in R
Remove Space Between Plotted Data and the Axes
Subtracting Two Columns to Give a New Column in R
Counting Unique Values Across Variables (Columns) in R
Select the Row With the Maximum Value in Each Group
How to Debug "Contrasts Can Be Applied Only to Factors With 2 or More Levels" Error
How to Specifically Order Ggplot2 X Axis Instead of Alphabetical Order