通过read.clipboard将数据从excel导入R.

时间:2014-02-19 19:04:45

标签: r excel

我正在尝试简化一个过程,通过该过程我从excel工作表中选择并复制两列并将它们导入到R中,我将其进一步子集化。这是我的问题:

excel数据在同一列中有多组数据。例如:第1列是[V,1,2,3,4,V,1,2,3,4],第2列是[A,2,4,6,10,A,3,6,9 ,12]其中V和A是列标题。我尝试复制两个相关列,然后在R中运行以下代码:

testing<-read.clipboard(header=TRUE, sep="  ")
testinga<-testing[1:4,]

结果表看起来很好,但是在ggplot中绘制时

 ggplot(testing, aes(V,A))+geom_point()

结果图以第一个数字对我的数据点进行排序(即将10绘制为1)

如果我只是复制第一个数据集并使用read.clipboard

导入它,这不是问题

这里发生了什么,我该如何解决它?

编辑:

# from dput()
testing <- structure(list(V = structure(c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L), .Label = c("1", "2", "3", "4", "V"), class = "factor"), A = structure(c(3L, 5L, 6L, 1L, 8L, 4L, 6L, 7L, 2L), .Label = c("10", "12", "2", "3", "4", "6", "9", "A"), class = "factor")), .Names = c("V", "A"), class = "data.frame", row.names = c(NA, -9L))

1 个答案:

答案 0 :(得分:0)

你的问题是,如果有更多的列名,那么大的data.frame的列会被转换为因子(而不是数字)。您只需要转换回数字。

testinga <- testing[1:4, ]
testinga <- sapply(testinga, FUN = function(x){as.numeric(as.character(x))})

然后你应该能够很好地绘制。