R中方括号csv中的多个值

Multiple values in square bracket csv in R

我有一个这样的 csv 文件:

1556891503.326399;16384;340;48188.23529411765;[1618.377685546875, 1620.2911376953125, 1620.1904296874998, 1619.9386596679685, 1620.391845703125, 1620.2911376953125, 1620.794677734375, 1618.1762695312498, 1620.8450317382812, 1621.0968017578125, 1620.3414916992188, 1620.7443237304685, 1620.391845703125, 1620.9457397460935,...]; 155689433.326399;16384;340;48188.23529411765;[1618.377685546875, 1620.2993876953125, 1620.1904296874998, 1619.9386596679685, 1620.391845703125, 1620.2911376953125..];...

有 5 个特征,最后一个是方括号中一个单元格中的大量传感器数据,用逗号分隔。我想获取此传感器数据的均值、模式、sd.. 等,但我不知道如何将其从括号中删除并进行分析。我尝试将其修改为 String 但数据量巨大且处理时间长! 有没有更简单的方法?

这可能不是最好或最漂亮的方法,但下面的方法会起作用。

不清楚你的文件是如何格式化的,但因为你说 "There are 5 features and the last one is",我假设你的数据是这样的:

 df1 <- data.frame(V1=c(1556891503,155689433),V2=c(16384,16384),V3=c(340,340),V4=c(12,12),V5=c("[12,12,12,23]","[8,8,8,8]"))

           V1    V2  V3 V4            V5
 1 1556891503 16384 340 12 [12,12,12,23]
 2  155689433 16384 340 12     [8,8,8,8]

您可以使用 read.csvsep=";"

读取该 csv
df <- read.csv("myFile.csv",sep= ";", header = FALSE, stringsAsFactors = FALSE)
df$V5 <- gsub("\[","",df$V5)
df$V5 <- gsub("\]","",df$V5)

然后您可以 split 使用 strsplit(df$V5,split = ", ") 第 5 列,将其转换为数字

df$V6 <- strsplit(df$V5,split = ", ")
df$V6 <- sapply(df$V6, function(x) as.numeric(unlist(x)))

并计算您的统计数据

df$mean <- sapply(df$V6, function(x) mean(unlist(x)))
df$sd <- sapply(df$V6, function(x) sd(unlist(x)))

     mean        sd
1 1620.201 0.8779917
2 1619.915 0.7689437