我有一个数据帧,该数据帧的列的值为3898000。我需要创建另一个数据帧,该数据帧将具有10行,其中第一个数据帧的值从我的值中逐渐减少1000。因此最后一个第二个数据帧将具有
3888000
3889000
3890000
3891000
3892000
3893000
3894000
3895000
3896000
3897000
我是R的新手,所以这就是我为此苦苦挣扎的原因。
答案 0 :(得分:2)
假设您已从第一张表中提取了目标号码。在这里,我们创建了一个新表,其中有一个列,其中填充了一个序列,其中下一行比上一行少1000。 (请注意,OP显示了一个升序,将使用1000代替下面的-1000。)
result_extracted_from_table <- 3898000
new_table <- data.frame(
my_column = seq(from = result_extracted_from_table,
by = -1000, length.out = 10)
)
输出:
new_table
my_column
1 3898000
2 3897000
3 3896000
4 3895000
5 3894000
6 3893000
7 3892000
8 3891000
9 3890000
10 3889000
答案 1 :(得分:1)
您可以使用seq()
创建一个从1,000开始的序列,并为dplyr::data_frame()
中的每一行增加1,000。 dplyr::mutate()
用于从初始列中减去序列并将结果放入新列中:
library(dplyr)
data_frame(v1 = rep(3898000, 10)) %>%
mutate(v2 = v1 - seq(1000, 1000*nrow(.), 1000))
# v1 v2
# <dbl> <dbl>
# 1 3898000 3897000
# 2 3898000 3896000
# 3 3898000 3895000
# 4 3898000 3894000
# 5 3898000 3893000
# 6 3898000 3892000
# 7 3898000 3891000
# 8 3898000 3890000
# 9 3898000 3889000
# 10 3898000 3888000
dplyr::select()
然后可以用于创建仅包含新值的data_frame。