我很难使用我的R代码。我试图根据我已有的数据框创建一个新的数据框,其中每个重复值分别乘以1000并按顺序加1。例如,我的数据框中的值范围从3869014到4524673,每个数字有多个值(最多100个)。例如:[3869014,3869014,3869014,3869014,3869014,3869014,3869014,3869014,3869015,3869015,3869015,3869015,3869016,3869016,3869016,3869016等]。我要的是:3869014001,3869014002,3869014003,3869014004,3869014005,3869014006,3869014007,3869014008,3869015001,3869015002,3869015003,3869015004,3869016001,3869016002,3869016003,3869016004,等...]如何将计数添加到R数据框中的重复项
我试过下面的代码,但它将每个数字乘以1000,并添加一个,无论重复。它也只增加一个,而不是增加一个计数(例如:1,2,3,4等)。所以输出是[3869014001,3869014001,3869014001,3869014001等...这不是我想要的。我对R数据框循环有点新。谢谢您的帮助。
setwd("F:/TimData/SPAM/Ethiopia")
#clear all variables
rm(list=ls())
#install packages
install.packages(c("spatstat","maptools","lattice","sp","RColorBrewer","splancs","maps", "plyr"))
install.packages(c("rgdal","raster","R.utils","spsurvey", "xlsx", "rJava", "foreign"),dep=TRUE)
#load libraries
library(spatstat); library(maptools); library(lattice); library(sp);
library(RColorBrewer); library(splancs); library(maps)
library(rgdal); library(raster); library(R.utils); library(spsurvey); library(foreign);
library(rJava)
library(xlsx)
library(plyr)
#creating a custom 1km spatial grid
kmgrid = readGDAL("EthiopiaBuffer1km.tif")
#convert raster to data frame
kmgridx= as.data.frame(kmgrid, row.names=NULL, optional=FALSE, xy=FALSE, na.rm=TRUE)
#specify column containing raster values
x=kmgridx$band1
#setting counter for while statement, based on actual min/max values of raster #grid
start = 3869014
finish = 4525673
#setting loop to multiply each duplicate by 1000 and add one, doesn't work
while (start < finish) {
if (start) {
for (i in 1:length(x)) {y=(x*1000)+1}
start=start +1 }
}
你确定你的例子适合您的问题说明?为什么你要安装一百万个与这个问题无关的软件包?尽量让示例最小化。作为一个提示:你可能想看R中的''ave'和'seq_along'。 – 2015-03-02 20:50:26