从dataframe中随机抽取样本并输出到excel
我从数据帧a中随机抽取样本。限定符a[,1]将导出到excel中。但是我有麻烦了从dataframe中随机抽取样本并输出到excel,r,R,我从数据帧a中随机抽取样本。限定符a[,1]将导出到excel中。但是我有麻烦了 str(a) 'data.frame': 2299 obs. of 5 variables: $ A : Factor w/ 2284 levels "01012223427",..: 1339 78 779 1590 1687 64 1034 633 1321 109 a[sample(a[,1],300),]->q 这导致了300个随机样本,但其中有几个是NA。有什么想
str(a)
'data.frame': 2299 obs. of 5 variables:
$ A : Factor w/ 2284 levels "01012223427",..: 1339 78 779 1590 1687 64 1034 633 1321 109
a[sample(a[,1],300),]->q
这导致了300个随机样本,但其中有几个是NA。有什么想法吗
q[,1]->r
str(r)
Factor w/ 2284 levels "01012223427",..: 85 1162 1886 549 1996 789 185 321 632 2273
我需要将01012223427格式的r向量输入excel,但执行write.csvr,r.csv会在列的每个单元格中生成一个包含concatenated 101012223427等的文件。我试着写下.csvas.numericr,r.csv,但对输出因子本身没有帮助。我该怎么做
-编辑
write.csv2r,300.csv,row.names=F解决了我的问题,但我仍然不确定为什么会引入NA
//M若要将数字因子转换为数字,必须首先更改为字符,否则将获得因子的内部数字,而不是级别标签:
as.numeric(as.character(r))
NA可能是由于因子级别中的非数字字符而引入的。若要将数字因子转换为数字,必须首先更改为字符,否则将获得因子的内部数字,而不是级别标签:
as.numeric(as.character(r))
NA可能是由于因子级别中的非数字字符而引入的。我还将首先检查为什么有因子。在我看来,你似乎是从某个文本文件中读到的,其中要么包含空格,要么包含空格、点、标签、字母NA,。。。这会使R将整个列视为一个字符,并在使用read.csv或类似工具时将其转换为一个因子 如果您找到了它,您也知道为什么会得到NA,并且可以在将数据帧保存到文本文件之前对其进行修正。在read.table和read.csv中选中stringsAsFactors=F选项,或者在read.csv中选中as.is=T选项 接下来是一段代码:
a[sample(a[,1],300),]->q
不是在做你认为我猜的事。我会使用索引本身,类似于:
a[sample.int(dim(a)[1],300),] -> q
如果a变为数字,则上面的代码将不再工作。它将取a[,1]的值,其中一个是01012223427。因此您将得到一个错误,因为没有具有该索引号的行。此外,当将[,1]作为字符传输时,您使用的代码将中断。我还将首先检查您为什么有一个因子。在我看来,你似乎是从某个文本文件中读到的,其中要么包含空格,要么包含空格、点、标签、字母NA,。。。这会使R将整个列视为一个字符,并在使用read.csv或类似工具时将其转换为一个因子 如果您找到了它,您也知道为什么会得到NA,并且可以在将数据帧保存到文本文件之前对其进行修正。在read.table和read.csv中选中stringsAsFactors=F选项,或者在read.csv中选中as.is=T选项 接下来是一段代码:
a[sample(a[,1],300),]->q
不是在做你认为我猜的事。我会使用索引本身,类似于:
a[sample.int(dim(a)[1],300),] -> q
如果a变为数字,则上面的代码将不再工作。它将取a[,1]的值,其中一个是01012223427。因此您将得到一个错误,因为没有具有该索引号的行。此外,当将[,1]作为字符传输时,您使用的代码也会中断。这有助于…欣赏它//这有助于…感激它//M