【发布时间】:2018-10-20 20:35:30
【问题描述】:
我正在尝试通过引用一列 (SID) 中的唯一值来迭代数据集。我想根据数据框中的现有列创建几个变量。这些将为 SID 的每个唯一值计算。目前,我的代码没有根据 SID 的唯一值进行分离。它是对整个数据集的值求和。
这是一个例子:
数据:
数据框中有 40 行。 20行的SID值为“9003”,20行的值为“1028”。
我想创建一个名为“numPR”的变量和列,它是 df(“PreviewRound”)中已经存在的列的值的总和。 “PreviewRound”中的值为 0 或 1。
在这个具体的例子中,对于 SID 的每个唯一值,numPR 应该是 6,但目前它是 12(它不按 SID 分隔)。
代码如下:
file = "fpd_2b.csv"
headers = read.csv(file, header = F, nrows = 1, as.is = T)
df = read.csv(file, skip = 2, header = F)
colnames(df) = headers
# Remove blank rows (there is a blank row between each unique SID)
df = subset(df, SID >1)
df$SID = factor(df$SID)
for (sid in unique(df$SID)) {
numPR = sum(df$PreviewRound)
df$numPR = numPR
}
numPR 的整列用 12 填充,但应该用 6 填充(6 表示 9003,6 表示 1028)。任何帮助将非常感激!我已经在 Stack Overflow 和其他网站上查看了类似的帖子,但我的问题没有运气。我确信解决方案非常简单,非常感谢您的帮助,伙计们!
【问题讨论】: