我昨天下载了一个新版本的R Studio(2023.03.0),现在遇到了一个错误。每当我试图从一个大的数据框中调用一个列(使用$)时,我都会得到以下错误:
Error in order(typeScores, scores) : argument lengths differ
In addition: Warning message:
In completions$type == .rs.acCompletionTypes$DATAFRAME & !completions$context %in% :
longer object length is not a multiple of shorter object length
下面的代码(由遇到同样错误的其他人为https://github.com/rstudio/rstudio/issues/13018构建的)重复了这个问题:
library(dplyr)
generate_dataframe <- function(n_rows, n_columns) {
set.seed(42) # Setting the seed for reproducibility
random_column_generator <- function(n_rows) {
col_type <- sample(c("character", "numeric", "boolean", "factor"), 1)
if (col_type == "character") {
return(sample(c(LETTERS, NA), n_rows, replace = TRUE))
} else if (col_type == "numeric") {
return(sample(c(rnorm(n_rows, mean = 0, sd = 1), NA), n_rows, replace = TRUE))
} else if (col_type == "boolean") {
return(sample(c(TRUE, FALSE, NA), n_rows, replace = TRUE))
} else if (col_type == "factor") {
values <- sample(c(-1:1, NA), n_rows, replace = TRUE)
labels <- c("Negative", "Neutral", "Positive")
return(factor(values, levels = c(-1, 0, 1), labels = labels, exclude = NULL))
}
}
random_string <- function(length) {
return(paste(sample(c(LETTERS, letters), length, replace = TRUE), collapse = ""))
}
df <- data.frame(matrix(ncol = n_columns, nrow = n_rows))
for (i in 1:n_columns) {
df[[i]] <- random_column_generator(n_rows)
}
colnames(df) <- replicate(n_columns, random_string(sample(1:8, 1)))
return(df)
}
# Generate random large dataframe
generated.df <- generate_dataframe(n_rows = 5e4, n_columns = 4e3)
如果您键入“generated.df$”,则会出现错误。我的问题是,为什么会出现这种错误?它似乎没有改变代码的运行方式--这意味着什么?最后,这是最新的R工作室中的一个bug吗?
谢谢!
1条答案
按热度按时间k97glaaz1#
这可能只是因为您的系统中没有安装足够的内存(RAM)。尝试使用较小的 Dataframe ,看看是否有帮助-在你用完并购买更多内存之前。
你也可以使用任务管理器(或top),看看你的内存使用情况。