R 尝试查找数据帧中字段的每日差异

R 尝试查找数据帧中字段的每日差异,r,R,我有这个 head(df2) Close Group 2007-01-03 17.625 S 2007-01-04 17.645 B 2007-01-05 17.570 B 2007-01-08 17.505 B 2007-01-09 17.430 B 2007-01-10 17.375 S 我试图找到“关闭”的每日变化 我试过这样做:dailychange出现错误消息是因为某些数据不是数字。diff()中只能使用数字数据。检查“

我有这个

head(df2)
           Close  Group
2007-01-03 17.625 S    
2007-01-04 17.645 B    
2007-01-05 17.570 B    
2007-01-08 17.505 B    
2007-01-09 17.430 B    
2007-01-10 17.375 S
我试图找到“关闭”的每日变化


我试过这样做:
dailychange出现错误消息是因为某些数据不是数字。diff()中只能使用数字数据。检查“关闭”列中的数据,以检查数据是否为数字。

由于某些数据不是数字,因此会出现错误消息。diff()中只能使用数字数据。检查“关闭”列中的数据,以检查数据是否为数字。

来自
ts
的文档:

观测到的时间序列值的向量或矩阵。数据帧 将通过data.matrix强制转换为数字矩阵

但是,具有字符列的timeseries会将所有列转换为字符。在具有字符值的矩阵中可以看到相同的行为

将数据作为data.frame保存在中,或者在diff语句中使用
as.numeric

dailychange <- diff(as.numeric(df2$Close))
dailychange
[1]  0.020 -0.075 -0.065 -0.075 -0.055

ts
文档中的
dailychange:

观测到的时间序列值的向量或矩阵。数据帧 将通过data.matrix强制转换为数字矩阵

但是,具有字符列的timeseries会将所有列转换为字符。在具有字符值的矩阵中可以看到相同的行为

将数据作为data.frame保存在中,或者在diff语句中使用
as.numeric

dailychange <- diff(as.numeric(df2$Close))
dailychange
[1]  0.020 -0.075 -0.065 -0.075 -0.055

dailychange
diff(df2$Close)
对我来说效果很好。检查数据中的类if
df$Close
为什么不共享
str(df2)
的输出?如果要将其表示为时间序列,请使用+1和-1,而不是B和S,以便它保持数字。或者为B和S创建一个单独的时间序列。
diff(df2$Close)
对我很有效。检查数据中的类if
df$Close
为什么不共享
str(df2)
的输出?如果要将其表示为时间序列,请使用+1和-1,而不是B和S,以便它保持数字。交替地为B和S创建单独的时间序列。