Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中减去.csv文件中的2列?_R_Sum_Subtraction - Fatal编程技术网

如何在R中减去.csv文件中的2列?

如何在R中减去.csv文件中的2列?,r,sum,subtraction,R,Sum,Subtraction,如何在R中上载的.csv文件中减去2个colmun 我使用reading命名了新列,因为您没有发布任何示例数据。我发布了一个基于iris内置数据集的示例:您可以简单地使用-减去相同长度的向量(如果长度不相同,则会循环使用较短的向量)。 您可以使用$运算符或[]运算符从数据集中选择列 data(iris) #assigning the result to a new column iris$subtraction <- iris$Sepal.Length-iris$Sepal.Width

如何在R中上载的.csv文件中减去2个colmun


我使用reading命名了新列,因为您没有发布任何示例数据。我发布了一个基于
iris
内置数据集的示例:您可以简单地使用
-
减去相同长度的向量(如果长度不相同,则会循环使用较短的向量)。 您可以使用
$
运算符或
[]
运算符从数据集中选择列

data(iris)
#assigning the result to a new column 
iris$subtraction <- iris$Sepal.Length-iris$Sepal.Width
iris$subtraction <- iris[,1]-iris[,2]

#assigning the result to a new variable
subtraction <- iris[,1]-iris[,2]
subtraction <- iris$Sepal.Length-iris$Sepal.Width

正如您所看到的,对于这个简单的任务,
base
data.table
解决方案是等效的,而
mutate
解决方案则稍慢一些。但是,整个模拟只需一分钟,单个操作只需几毫秒。 我的电脑有16Gb内存和12个内核

编辑

OP询问
Date
案例后,这里有一个日期为
POSIXct
类的小示例:

day <- Sys.Date()
hm <- merge(0:23, seq(0, 45, by = 15))
datetime <- merge(last7days, chron(time = paste(hm$x, ':', hm$y, ':', 0)))
colnames(datetime) <- c('date', 'time')

# create datetime
dt <- as.POSIXct(paste(datetime$date, datetime$time))

df <- data.frame(x=sample(dt,200000,replace = T),y=sample(dt,200000,replace = T))
microbenchmark(df$x-df$y)

如果您创建一个小的可复制的示例以及预期的输出,那么会更容易提供帮助。阅读。是的,我知道这在小数据集的情况下,但我有一个.csv文件,有大约200000行要减去它应该不是一个问题。由于只有200000行,这取决于计算机,它应该在几秒钟或至少几分钟内运行。但是,您可以尝试使用
data.table
包,该包用于处理大型数据集,默认情况下并行工作。我将尽快发布不同解决方案的基准示例OK我如何在stackerflow上上传.csv文件为了更好地解释这个案例,您可以复制并粘贴
dput(head(your.data,50))
的输出以体验您的csv,或者将csv上传到google驱动器并共享链接。但是,您应该编辑您的问题以更好地解释您的需求,并用一个可复制的例子来展示你迄今为止的努力。开始于2020年4月26日17:45 4/26/2020 18:12 0.018622685 4/17/2020 17:08 4/17/2020 17:17 0.005659722 4/18/2020 15:49 4/18/2020 16:24 0.024664352 4/19/2020 13:39 4/19/2020 14:01 0.01506944这是我的数据的简短预览。乘骑里程通过减去开始时-结束时目前我在excel中完成了,但如果我想使用R wat commonad来完成,请使用R创建一个新的colmun ride长度,其输出将在开始时结束(减去),
day <- Sys.Date()
hm <- merge(0:23, seq(0, 45, by = 15))
datetime <- merge(last7days, chron(time = paste(hm$x, ':', hm$y, ':', 0)))
colnames(datetime) <- c('date', 'time')

# create datetime
dt <- as.POSIXct(paste(datetime$date, datetime$time))

df <- data.frame(x=sample(dt,200000,replace = T),y=sample(dt,200000,replace = T))
microbenchmark(df$x-df$y)
Unit: milliseconds
        expr      min       lq     mean   median       uq     max neval
 df$x - df$y 1.459801 1.544301 2.755227 1.624501 1.845401 62.7416   100