我想在Ntile中增加一个新列,但该列应取决于第1列-“年份”,并显示第2列的Ntile编号-“里程”。
year mileage
<dbl> <dbl>
1 2011 7413
2 2011 10926
3 2011 7351
4 2011 11613
5 2012 8367
6 2010 25125
mydata$Ntile <- ntile(mydata$mileage, 10)
我知道易于使用的功能ntile
,但是我不知道如何使它依赖于2列。我想使用ntiles作为里程数,但要在新列“ Ntile”中计算2010、2011和2012年的年增长率。 p>
PS:我知道没有足够的数据来计算2011和2012年的Ntiles,这只是一个例子。
答案 0 :(得分:0)
我喜欢data.table方法:
@RequestMapping(value = "/api/brand/add", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseDTO createBrand(@RequestBody Brand brand) {
ResponseDTO responseDTO = new ResponseDTO();
Random rand = new Random();
try {
List<String> brandNames = brandService.findAllBrandNames();
System.out.println(brandNames.toString());
if (brandNames.contains(brand.getName())) {
responseDTO.setCode(ErrorCode.error_1100);
responseDTO.setMessage(ErrorCode.error_msg1100);
} else {
brand.setBrandId("HSB" + rand.nextLong());
String brandId = valid.generateBrandId(brand.getBrandId());
if (brandId.contains("-")) {
brandId = brandId.replace("-", "").trim();
}
brand.setBrandId(brandId);
brand.setActive(true);
brand.setDeleted(false);
brand.setCreatedOn(new Date(cal.getTime().getTime()));
brand.setCreatedBy("vendor");
brand.setModifiedOn(new Date(cal.getTime().getTime()));
brand.setModifiedBy("vendor");
brandService.save(brand);
responseDTO.setCode(ErrorCode.error_0);
responseDTO.setMessage("Created brand successfully.");
responseDTO.setData(brandId);
}
} catch (Exception e) {
responseDTO.setCode(ErrorCode.error_1101);
responseDTO.setMessage(ErrorCode.error_msg1101);
return responseDTO;
}
return responseDTO;
}
最好!