我有一个xts对象。因此,按日期排序的公司“已发行股份”的时间序列。
我想将“流通股”的时间序列乘以系数7,以解决股票分割问题。
> outstanding_shares_xts <- shares_xts1[,1]
> adjusted <- outstanding_shares_xts*7
错误:二进制运算符的非数字参数。ts“oustanding_shares_xts”是一列整数。
有人有主意吗?
最佳答案
我的猜测是它们可能看起来像整数,但实际上不是。
侦听:
[
-vs- [[
列的子集,因为tibble(a=1:2)[,1]
不会产生整数 vector (它会产生单列标题),但是tibble(a=1:2)[,1] * 7
仍然有效。factor
造成的,但这是一个不同的错误:data.frame(a=factor(1:2))[,1]*7
# Warning in Ops.factor(data.frame(a = factor(1:2))[, 1], 7) :
# '*' not meaningful for factors
# [1] NA NA
character
值。dat <- data.frame(a=as.character(1:2))
dat
# a
# 1 1
# 2 2
dat[,1]*7
# Error in dat[, 1] * 7 : non-numeric argument to binary operator
尝试将该列转换为整数,例如str(dat)
# 'data.frame': 2 obs. of 1 variable:
# $ a: chr "1" "2"
dat$a <- as.integer(dat$a)
str(dat)
# 'data.frame': 2 obs. of 1 variable:
# $ a: int 1 2
dat[,1]*7
# [1] 7 14
关于r - #R#二进制运算符#xts对象的非数字参数*整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62489120/