在R中将列值从一个数据帧分配给另一个数据帧

时间:2012-08-14 09:40:39

标签: r

我使用下面的代码使用另一个数据框创建了一个空数据框。

compare<-data.frame(nrow=nrow(test_email),ncol=ncol(test_data))
colnames(compare)<-c("email", "gender")

现在,我正在尝试使用简单赋值语句根据某些条件为比较数据框的列赋值。

compare[1,1]<-test_email[1,1]
compare[1,2]<-test_data[1,2]

在上文中,test_email[1,1]的电子邮件ID如“abc@gmail.com” 但是,在作业compare[1,1]具有值81而不是电子邮件ID之后。 我无法理解为什么电子邮件没有被分配,一些数字版本被分配。任何人都可以让我知道这个原因以及如何解决。 test_email的结构如下:

structure(list(email = structure(c(81L, 75L, 57L, 61L, 79L, 76L),
.Label = "ajay.bansal@siemens.com", "amanmeet.bhalla@gmail.com",
"aoneshp@gmail.com", "aparna_anand@msn.com", "ar.ashwani@gmail.com",
"ar.parulbansal@gmail.com", "ar.preet02@gmail.com",
"asdawsd@yahoo.com", "assd@yopmail.com",
"avijeet_yadav@rediffmail.com", "avneng1.negi@gmail.com",
"avnihatnagar@yahoo.com", "bansalanuj007@yahoo.com.au",
"bhanu5877@yahoo.co.in"), class = "factor")), .Names = "email",
w.names = c(NA, 6L), class = "data.frame")

我无法找到R在分配期间将电子邮件转换为某些数字值的原因。

1 个答案:

答案 0 :(得分:1)

您的作业仍在阅读电子邮件地址作为因素。

一个简单的方法是:

compare[1,1] <- as.character(test_email[1,1])