我想删除此数据框中的行:
a)包含NA
所有列的s.下面是我的示例数据框.
gene hsap mmul mmus rnor cfam
1 ENSG00000208234 0 NA NA NA NA
2 ENSG00000199674 0 2 2 2 2
3 ENSG00000221622 0 NA NA NA NA
4 ENSG00000207604 0 NA NA 1 2
5 ENSG00000207431 0 NA NA NA NA
6 ENSG00000221312 0 1 2 3 2
Run Code Online (Sandbox Code Playgroud)
基本上,我想获得如下的数据框.
gene hsap mmul mmus rnor cfam
2 ENSG00000199674 0 2 2 2 2
6 ENSG00000221312 0 1 2 3 2
Run Code Online (Sandbox Code Playgroud)
b)只在某些列中包含NA
s …
当我将因子转换为数字或整数时,我得到基础级别代码,而不是值作为数字.
f <- factor(sample(runif(5), 20, replace = TRUE))
## [1] 0.0248644019011408 0.0248644019011408 0.179684827337041
## [4] 0.0284090070053935 0.363644931698218 0.363644931698218
## [7] 0.179684827337041 0.249704354675487 0.249704354675487
## [10] 0.0248644019011408 0.249704354675487 0.0284090070053935
## [13] 0.179684827337041 0.0248644019011408 0.179684827337041
## [16] 0.363644931698218 0.249704354675487 0.363644931698218
## [19] 0.179684827337041 0.0284090070053935
## 5 Levels: 0.0248644019011408 0.0284090070053935 ... 0.363644931698218
as.numeric(f)
## [1] 1 1 3 2 5 5 3 4 4 1 4 2 3 1 3 5 4 5 3 2
as.integer(f)
## [1] 1 1 3 2 5 …
Run Code Online (Sandbox Code Playgroud) R提供了两种不同的方法来访问列表或data.frame- []
和[[]]
运算符的元素.
两者有什么区别?在什么情况下我应该使用一个而不是另一个?
我正在尝试初始化没有任何行的data.frame.基本上,我想为每个列指定数据类型并命名它们,但不会创建任何行作为结果.
到目前为止我能做的最好的事情是这样的:
df <- data.frame(Date=as.Date("01/01/2000", format="%m/%d/%Y"),
File="", User="", stringsAsFactors=FALSE)
df <- df[-1,]
Run Code Online (Sandbox Code Playgroud)
这会创建一个data.frame,其中包含我想要的所有数据类型和列名的单行,但也会创建一个无用的行,然后需要将其删除.
有一个更好的方法吗?
在R中,mean()
它median()
是标准函数,可以满足您的期望. mode()
告诉您对象的内部存储模式,而不是其参数中出现最多的值.但是有一个标准的库函数来实现向量(或列表)的统计模式吗?
我有一组看起来像这样的数据:
anim <- c(25499,25500,25501,25502,25503,25504)
sex <- c(1,2,2,1,2,1)
wt <- c(0.8,1.2,1.0,2.0,1.8,1.4)
data <- data.frame(anim,sex,wt)
data
anim sex wt anim2
1 25499 1 0.8 2
2 25500 2 1.2 2
3 25501 2 1.0 2
4 25502 1 2.0 2
5 25503 2 1.8 2
6 25504 1 1.4 2
Run Code Online (Sandbox Code Playgroud)
我希望在每个动物ID之前添加零:
data
anim sex wt anim2
1 025499 1 0.8 2
2 025500 2 1.2 2
3 025501 2 1.0 2
4 025502 1 2.0 2
5 025503 2 1.8 2
6 …
Run Code Online (Sandbox Code Playgroud) 这些天我似乎与共同作者分享了很多代码.他们中的许多人都是初级/中级R用户,并没有意识到他们必须安装他们尚未拥有的软件包.
是否有一种优雅的方式来调用installed.packages()
,将其与我正在加载的那些进行比较并在安装时如果丢失?
以下代码显然是错误的.有什么问题?
i <- 0.1
i <- i + 0.05
i
## [1] 0.15
if(i==0.15) cat("i equals 0.15") else cat("i does not equal 0.15")
## i does not equal 0.15
Run Code Online (Sandbox Code Playgroud) 我正在尝试确定字符串是否是另一个字符串的子集.例如:
chars <- "test"
value <- "es"
Run Code Online (Sandbox Code Playgroud)
如果"value"作为字符串"chars"的一部分出现,我想返回TRUE.在以下场景中,我想返回false:
chars <- "test"
value <- "et"
Run Code Online (Sandbox Code Playgroud) 假设我们有一个包含多个data.csv文件的文件夹,每个文件包含相同数量的变量,但每个变量包含不同的时间.R中有没有办法同时导入它们而不必单独导入它们?
我的问题是我有大约2000个数据文件要导入,只需使用代码就可以单独导入它们:
read.delim(file="filename", header=TRUE, sep="\t")
Run Code Online (Sandbox Code Playgroud)
不是很有效率.
r ×10
r-faq ×10
dataframe ×3
casting ×1
csv ×1
extract ×1
filter ×1
formatting ×1
import ×1
list ×1
missing-data ×1
packages ×1
regex ×1
statistics ×1
string ×1