我在一个文件夹中有几个tsv文件,总计超过50 GB.为了在将这些文件加载到R中时使内存更容易,我想只提取这些文件的前3列.
如何在终端中一次性提取所有文件的列?我正在运行Ubuntu 16.04.
我有一个字符串向量,格式如下:
strings <- c("UUDBK", "KUVEB", "YVCYE")
Run Code Online (Sandbox Code Playgroud)
我也有这样的数据框:
replacewith <- c(8, 4, 2)
searchhere <- c("UUDBK, YVCYE, KUYVE, IHVYV, IYVEK", "KUVEB, UGEVB", "KUEBN, IHBEJ, KHUDN")
dataframe <- data.frame(replacewith, searchhere)
Run Code Online (Sandbox Code Playgroud)
我希望将字符串向量替换为此数据框中相应"replacewith"列中的值.目前我的方式是:
final <- sapply(as.character(strings), function(x)
as.numeric(dataframe[grep(x, dataframe$searchhere), 1]))
Run Code Online (Sandbox Code Playgroud)
然而,使用长度为10 ^ 9的字符向量进行此计算非常重要.
有什么更好的方法呢?
谢谢!
我有一个如下所示的函数,它生成具有相似名称的各种变量。在这个函数内部,我想将所有变量放入一个列表中。我知道这个例子看起来不太有效,因为我可以从一开始就使用列表,但在我的函数中,我有必要这样做。
test_function <- function(x) {
myenv <- new.env()
myenv$hello1 = "hello1string"
myenv$hello2 = "hello2string"
myenv$cello2 = "hello2string"
mylist <- lapply(ls(name = myenv, pattern = "hello"), get)
print(class(mylist))
}
Run Code Online (Sandbox Code Playgroud)
如何将所有以“hello”开头的变量放入列表中而不给出错误:Error in FUN(X[[i]], ...) : object 'hello1' not found when running test_function()。当将变量放入共享环境时甚至会发生这种情况。
我希望决赛mylist是班级名单,而不是角色。
谢谢!
我有一个如下所示的模型:
library(mlbench)
data(Sonar)
library(caret)
set.seed(998)
my_data <- Sonar
fitControl <-
trainControl(
method = "boot632",
number = 10,
classProbs = T,
savePredictions = T,
summaryFunction = twoClassSummary
)
model <- train(
Class ~ .,
data = my_data,
method = "xgbTree",
trControl = fitControl,
metric = "ROC"
)
Run Code Online (Sandbox Code Playgroud)
如何绘制此模型的 ROC 曲线?据我了解,必须保存概率(我在 trainControl 中所做的),但是由于引导用于生成“测试”集的随机抽样,我不确定 caret 如何计算 ROC 值以及如何生成曲线。
为了隔离最佳性能参数的类概率,我正在做:
for (a in 1:length(model$bestTune))
{model$pred <-
model$pred[model$pred[, paste(colnames(model$bestTune)[a])] == model$bestTune[1, a], ]}
Run Code Online (Sandbox Code Playgroud)
请指教。
谢谢!
我有一个大数据框,有 22 列。我想根据第二列中的值进行过滤,因此如果该值不以“X”开头,我想删除该行。如果第二列中的此值包含星号,我还想删除该行。
test <- c(1, 2, 3, 4, 5, 6, 7, 8, 9)
secondcolumn <- c("Xidfhsfd*isjdf", "Hsuhdfskdh", "Xwidfsoid", "X*sdkfjjhsd", "Xkdsfhsd", "Uskesfudhsk", "Sdfukhsdiu", "Osdfihsdoiuh", "Xsodifdsifj")
othercolumn <- c(3, 5, 7,2, 5, 8, 3, 0, 5)
df <- as.data.frame(test, secondcolumn, othercolumn)
Run Code Online (Sandbox Code Playgroud)
这将如何完成?在这个例子中,我想删除第 1、2、4、6、7、8 和 9 行。
谢谢!
我有一个如下字典:
dict = {'hi':1, 'hi2':2, 'lskdjf':3}
Run Code Online (Sandbox Code Playgroud)
它继续这样超过一百万的价值.
我想将其转换为值为0的字典
例如,这是所需的输出:
dict = {'hi':0, 'hi2':1, 'lskdjf':2}
Run Code Online (Sandbox Code Playgroud)
如何有效地完成这项工作?
在阅读了这篇关于 k 均值聚类中的重复值的文章后,我意识到我不能简单地使用唯一点进行聚类。
\n\n\n\n我有超过 10000000 点,虽然只有 8000 个独特的点。因此,我最初认为为了加快速度,我\xe2\x80\x99d 仅使用唯一点。看来这是一个坏主意。
\n\n为了减少计算时间,这篇文章建议为每个点添加权重。这在Python中如何实现呢?
\n