在R中逐行读取CSV文件并创建特征?

我已经将插值后的数据存储在一个CSV文件中,文件有181行,每行第一个元素是标签,其余部分是时间序列数据,例如以下格式:

第1行:0, 980, 888, 720,987,543

第2行:0, 880, 999, 820,990,888, 980, 898, 780,987

第3行:1, 945, 856, 767,745,883

第4行:2, 780, 899, 920,890,988, 780, 998, 870,787

第5行:2, 800, 900, 822,999,880, 988, 899

其余181行也是如此,标签为0,1,2,3,4,5,6。请注意,每行的长度不同。我希望创建特征(例如,使用mean()作为其中一个特征),仅使用时间序列数据,即”980, 888, 720,987,543″,不包括标签”0″,并且我想对每一行进行操作,最终创建一个包含33个特征加上标签的数据框,像这样:

dim(labl_feat_df)[1] # 181 rowsdim(labl_feat_df)[2] # 34 columns (33 features and the label)

所以labl_feat_df将看起来像这样:

     label  mean(TS)  SD(TS) ........ feat331     02     0...181   6

其中mean(TS)和sd(TS)分别是第一个和第二个特征。

所以我的问题是:如何读取长度不同的文件?如果需要逐行读取,如何高效地创建这33个特征并将它们添加到数据框中?


回答:

1) dplyr/tidyr 使用注释部分的Lines,读取数据,添加行号id,并将数据从宽格式重塑为长格式。删除NA行并进行汇总。

library(dplyr)library(tidyr)DF <- read.table(text =Lines, sep = ",", strip.white = TRUE, fill = NA)DF %>%  mutate(id = 1:n()) %>%  pivot_longer(-c(V1, id)) %>%  drop_na %>%  group_by(V1, id) %>%  summarize(mean = mean(value), sd = sd(value)) %>%  ungroup

结果如下:

# A tibble: 5 x 4     V1    id  mean    sd  <int> <int> <dbl> <dbl>1     0     1  824. 190. 2     0     2  914.  80.33     1     3  839.  82.94     2     4  879.  84.05     2     5  898.  75.3

2) Base R 使用(1)中的DF,使用reshape将数据重塑为长格式,使用na.omit删除NA,并使用aggregate进行汇总:

DF2 <- na.omit(reshape(DF, dir = "long", varying = list(2:ncol(DF))))aggregate(V2 ~ V1 + id, DF2, function(x) c(mean = mean(x), sd = sd(x)))

结果如下:

  V1 id   V2.mean     V2.sd1  0  1 823.60000 190.248002  0  2 913.55556  80.284043  1  3 839.20000  82.886674  2  4 879.11111  83.957505  2  5 898.28571  75.28770

注释

Lines <- "0, 980, 888, 720,987,5430, 880, 999, 820,990,888, 980, 898, 780,9871, 945, 856, 767,745,8832, 780, 899, 920,890,988, 780, 998, 870,7872, 800, 900, 822,999,880, 988, 899"

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注