繁体   English   中英

如何基于R中数据框中的其他列为列中的每个元素获取新名称?

[英]How to get a new name for each element in a column based on other column in a data frame in R?

我有一个包含30000个数据的数据框。 我想基于“客户ID”列创建一个新列“客户名称”。 例如,如果客户ID为“ 100”,则数据框中新列以外的任何地方应显示“ Customer1 ”,如果ID为“ 200”,则应显示“ Customer2 ”,我尝试使用for循环和函数来完成此操作,但在徒劳的。

我已附上我的查询的屏幕截图:

AvailableData_and_OutputRequired

如果您的屏幕截图代表真实数据,则可以尝试

data.frame$new.customer.id <- paste("Customer", CustomerID / 100, sep = " ")

作为建议,将来您可以为您的数据提供一个具有代表性的示例,例如:

 dput(yourData)

会产生类似:

 structure(list(Receipt_no = 111:116, Customer_ID = c(100L, 100L, 
 200L, 300L, 100L, 400L), Customer_Name = structure(c(1L, 1L, 2L, 
 3L, 1L, 4L), .Label = c("Customer 1", "Customer 2", "Customer 3", 
 "Customer 4"), class = "factor")), .Names = c("Receipt_no",   "Customer_ID", 
 "Customer_Name"), class = "data.frame", row.names = c(NA, -6L))

您可以类似地在dplyr中使用mutate。

library("dplyr")
tbl_df(yourData)%>%mutate(`Customer Name`=paste("Customer",as.numeric(unlist(yourData%>%select(2)))/100)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM