我有两个数据框:
ch1 <- read.csv(file, header=TRUE, sep=";", skip=7)
ch2 <- read.csv(file2, header=TRUE, sep=";", skip=7)
第二帧的值介于0和3之间,X轴对应于第一帧(其时间)上的值。
我想只得到ch1的值,其中ch2的x轴是&lt; 1.0 我希望在单独的列表中使用这些值(矩阵首选)
示例频道2数据:
Relative time;Data collector12
s;V
2.2079991;0.011083123
2.2079992;0.028211586
2.2079993;-0.0020151134
2.2079994;0.001511335
2.2079995;0.016120907
2.2079996;3.025188917
示例频道1数据:
Relative time;Data collector1
s;V
2.2079992;-0.0109
2.2079993;-0.0133
2.2079994;-0.01055
2.2079995;-0.0071999999
2.2079996;-0.0043500001
在这种情况下,我想要除了最后一个以外的所有值。
我不知道从哪里开始,谢谢
答案 0 :(得分:0)
以下是您可以使用的内容:
library(data.table)
# c1 <- fread("filename.csv") #Reading from .csv file
# c2 <- fread("filtename.csv") #Reading from .csv file
c1 <- data.table(relative_time = c(2.2079991, 2.2079992, 2.2079993, 2.2079994, 2.2079995, 2.2079996),
voltage = c(0.011083123, 0.028211586, -0.0020151134, 0.001511335, 0.016120907, 3.025188917))
c2 <- data.table(relative_time = c(2.2079992, 2.2079993, 2.2079994, 2.2079995, 2.2079996),
voltage = c(-0.0109, -0.0133, -0.01055, -0.0071999999, -0.0043500001))
dat <- merge(c1, c2, by = "relative_time", all = T, suffixes = c("_ch1", "_ch2"))
<强>输出强>
> dat
relative_time voltage_ch1 voltage_ch2
1: 2.207999 0.011083123 NA
2: 2.207999 0.028211586 -0.01090
3: 2.207999 -0.002015113 -0.01330
4: 2.207999 0.001511335 -0.01055
5: 2.208000 0.016120907 -0.00720
6: 2.208000 3.025188917 -0.00435
> dat[voltage_ch2 <0, ]
relative_time voltage_ch1 voltage_ch2
1: 2.207999 0.028211586 -0.01090
2: 2.207999 -0.002015113 -0.01330
3: 2.207999 0.001511335 -0.01055
4: 2.208000 0.016120907 -0.00720
5: 2.208000 3.025188917 -0.00435
我使用了data.table
,但没有必要 - data.frame
应该给出相同的结果。我以为我会添加它,因为我发现在大型数据集上使用非常方便,可能需要更复杂的操作。 by
功能特别有用。