【发布时间】:2015-02-12 08:01:14
【问题描述】:
以下代码使数据框充满 0,列和行标签为数字:
#make blank data frame, label the columns and rows
data <- data.frame(matrix(0, ncol = 4, nrow = 4))
colnames <- seq(from = 1, to = 4, by = 1)
names(data)<- sprintf("%.0f", colnames)
rownames <- seq(from=3, to=12, by=3)
rownames(data) <- sprintf("%.0f", rownames)
我的问题是,鉴于上述数据框,我如何填写数据框,每个单元格取行标签乘以列标签的值,而不是像我在代码中那样使用 for 循环跟随。我想知道如何使用矢量化方法来做到这一点,而不必遍历每个单独的单元格。
for(i in 1:nrow(data)){
for(j in 1:ncol(data)){
data[i,j] <- as.numeric(rownames(data)[i])*as.numeric(colnames(data)[j])
}
}
【问题讨论】:
标签: r for-loop vector dataframe row