在R语言中为数据框创建步长0.002的递增序列报错求助
解决R语言数据框生成指定序列新变量的问题
你之前的代码报错是因为用length(dataset)(这是数据框的列数而非行数)或nrow(dataset)作为seq()的终止值,这样生成的序列长度和数据框行数不匹配——比如数据框有100行,0到100步长0.002会生成50001个值,远多于100行,自然会报长度错误。
下面是两种可靠的解决方法:
方法一:用length.out指定序列长度
直接通过length.out参数强制序列长度等于数据框行数,seq()会自动计算对应的终止值,保证长度完全匹配:
dataset$seq <- seq(from = 0, by = 0.002, length.out = nrow(dataset))
比如数据框有5行,生成的序列是0, 0.002, 0.004, 0.006, 0.008,正好5个值。
方法二:手动计算终止值
序列从0开始,步长0.002,第n个值为0 + 0.002*(n-1),所以直接把终止值设为0.002*(nrow(dataset)-1),生成的序列长度刚好等于行数:
row_count <- nrow(dataset) dataset$seq <- seq(from = 0, to = 0.002*(row_count - 1), by = 0.002)
内容的提问来源于stack exchange,提问作者Martyna F
相关产品推荐
相关产品推荐

