我有一个带有额外空格的csv文件,我想将其作为数据帧读入R,剥离空白区域.
这可以通过使用来实现
testdata<-read.csv("file.csv", strip.white=TRUE)
Run Code Online (Sandbox Code Playgroud)
问题是数据集很大并且需要大约半小时.fread函数至少快两倍,但没有strip.white函数.
library("data.table")
testdata<-data.frame(fread("file.csv"))
Run Code Online (Sandbox Code Playgroud)
有没有一种快速的方法可以在读入后从列中剥离空白区域,或者是否有某种方法可以使用fread去除空白区域?
如果它只是一次性导入,我不介意那么多,但我需要多次并经常这样做.
首先是一些背景信息,这在 stats.stackexchange 上可能更有趣:
在我的数据分析中,我尝试比较不同机器学习方法对时间序列数据(回归,而不是分类)的性能。例如,我训练了一个 Boosting 训练模型,并将其与随机森林训练模型(R 包 randomForest)进行了比较。
我使用时间序列数据,其中解释变量是其他数据和因变量的滞后值。
出于某种原因,随机森林的表现严重不佳。我能想到的问题之一是随机森林对每棵树的训练数据执行一个采样步骤。如果它对时间序列数据执行此操作,则该序列的自回归性质将被完全消除。
为了测试这个想法,我想用所谓的按块引导步骤替换 randomForest() 函数中的(引导)采样步骤。这基本上意味着我将训练集切成 k 部分,其中k<<N,其中每个第 k 部分都按原始顺序排列。如果我对这 k 个部分进行采样,我仍然可以从随机森林中的“随机性”中受益,但时间序列的性质基本保持不变。
现在我的问题是这样的:
为此,我通常会复制现有函数并编辑所需的步骤/行。
randomForest2 <- randomForest()
Run Code Online (Sandbox Code Playgroud)
但是 randomForest() 函数似乎是另一个包装器的包装器,用于更深层次的底层功能。那么如何在 randomForest() 函数中编辑实际的引导步骤,并仍然定期运行该函数的其余部分?
我正在尝试将自己的响应添加到自定义意图中。LaunchRequest文本有效,但是除了AMAZON.HelpIntent和其他默认意图之外,我自己的意图未被识别。
目的:
{
"interactionModel": {
"languageModel": {
"invocationName": "my personal heartbeat",
"intents": [
{
"name": "AMAZON.FallbackIntent",
"samples": []
},
{
"name": "AMAZON.CancelIntent",
"samples": []
},
{
"name": "AMAZON.HelpIntent",
"samples": []
},
{
"name": "AMAZON.StopIntent",
"samples": []
},
{
"name": "start",
"slots": [],
"samples": [
"Talk to my personal heartbeat"
]
},
{
"name": "currentbpm",
"slots": [],
"samples": [
"what's my current BPM",
"how fast is my heart beating right now",
"How many beats per minute is my heart making at …Run Code Online (Sandbox Code Playgroud) 假设我有一个数据框,我想对其执行转换。通常它看起来像:
a <- data.frame(c(NA, 0,1), c(34,NA,0), c(3,9,NA) )
b <- c('key1', 'key2', 'key3')
####replace NA values with 0
a[is.na(a)] <- 0
####replace 1 with 2
a[a==1] <- 2
####sum rows
a <- rowSums(a)
####bind b as key column for joining datasets in a later stage
c <- cbind(b, a)
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:我如何将其翻译为magrittr?
library(magrittr)
c %>%
.[is.na] %>% 0 %>% .[.==1] %>% 2 %>%
rowSums %>% cbind(b, .)
Run Code Online (Sandbox Code Playgroud)
给我:
.[is.na(.)] 中的错误:“内置”类型的对象不可取子
集另外:警告消息:
在 is.na(.) 中:is.na() 应用于非(列表或向量)的输入“内置”