我有一个R6类BarContainer,它包含一个Bar向量,其中Bar是另一个R6类。我想在BarContainer中实现一个方法BarContainer,它将Bar向量子集与作为参数的表达式匹配。
Bar = R6::R6Class(
### Class name
"Bar",
### Public members
public = list(
### Attributes
a = -1,
b = -1,
c = -1,
### Initialize
我迷失了R中的以下对象:
# create a list of filenames
files <- list.files("directory", full.names = TRUE)
# read all files as csv
data <- lapply(files, function(x) (data.frame(read.csv(x))))
这很好,但我不知道数据的类型,也不知道如何掌握它。让我们看看:
data[1]
[[1]]
Date value1 value2 ID
1 2003-01-01 NA NA
我有一个data.frame,我想根据特定ID的列表对其进行子集。我想从这个data.frame中提取所有的行,它们的ID与我的变量“基因”相同。到目前为止,我已经:
Final_Genes <- subset(Merged_Results,Merged_Results$Entrez.ID == genes, select = c(1:8))
但这会产生一个错误,
Warning messages:
1: In is.na(e1) | is.na(e2) :
longer object length is not a multiple of shorter obje
因此,我来自Matlab和Python的背景(以及其他几个不太相关的方面)。我在接R去修课程。
我遵循这个,以便将所有家庭作业文件读入一行代码中的列表中。我的代码如下所示:
# Get a list of files
files = list.files(path = dataDir, pattern = '*.csv')
# Import the file data
setwd(dataDir)
data = lapply(files, read.csv)
一切都很好。但是,我得到了一个我不知道如何访问的对象。我之前提到过Matlab和Python,因为我试图用这些语言访问
当每个data.frame中的变量不满足某些条件时,我使用一个函数将这些列从列表中删除,我希望有一种方便的方法来查看哪些列已经被删除。现实世界的data.frames将有1000 s不同的colnames,在这些名称中有一些重叠。
在这个简化的示例中,我想得到一个列表,其中显示了每个data.frame的变量,这些变量存在于list1中,但在list2中没有。
输入列表
> list1
$A
a b
1 2 3
$B
c d e
1 9 8 1
$C
f g
1 6 7
> list2
$A
a
1 2
$B
c d
1 9 8
$C
g
1 7
期望
加载了一堆Excel文件作为数据框,使用字典列表标准化列名,由于假设一半的列注定在其他数据框中,我尝试使用dplyr包中的rbind.fill将它们全部拆分和堆叠。
问题是,它们中的一些有90列,有些有56列,有些只有23列,所以当选择列时(我得到了split1、split2的列名列表),幸运的是,您得到了所有列,但有些时候没有。
# this is supposed to be in a loop splitting & stacking all df
split1 <- df[ ,c("column1","column2","
我想使用函数'ggplot‘将绘图分配给我用函数'eval’创建的对象。这个对象嵌套在一个循环中,因此定义为一个列表。在循环的每一轮中,应使用变量' list _pos‘将绘图保存为列表的一个元素。
其目的是创建三个不同的列表'Graphs_A‘、'Graphs_B’和'Graphs_C‘,每个列表将三个不同的图保存为元素。因此,只需运行以下命令,我就可以立即调用特定子组的绘图,例如A组
Graphs_A
R-Code如下所示。在我的示例中,我总是将相同的图分配给元素,当然,这不是我的真实数据集的情况。
###### Example #####
当原始元素是长度为2的数值向量时,我可以在R语言中覆盖列表的元素吗?
l <- list(a=c(3,5),b=2,c=3) # OK, CREATED a list s.t. element 'a' is a 2-length vector
l['b'] <- 8 # OK, overrided a named element 'b' of the list with a 1-length vector.
l['a'] <- c(4,5) # "Warning" emitted
(l) # BA
我有一个表(df):
Class Subclass
A C
A D
B E
B F
以及分离data.frames中"C“、"D”、"E“、"F”的计算结果
C (a data.frame,1 column)
D (a data.frame,1 column)
E (a data.frame,1 column)
F (a data.frame,1 column)
我想把data.frames "C“"D”绑定到"A“,把"E”"F“绑定到B,
我不经常用行名索引data.frame,但有时这样做有好处。然而,我注意到了当我试图过滤不令人兴奋的行时,意外的结果
test <- data.frame(a = c("a", "b", "c"),
b = c("A", "B", "C"),
row.names = c(-99.5, 99.5, 99))
test["-99", ]
你会期望它会给你
a b
NA &
所以,这是我想要做的:
df <- data.frame(a=1:6, b=1:6)
ss <- magicSubset(df, a <= 3)
ss$b <- 100
df$b # should be c(100,100,100,4,5,6)
在R中或在包中有类似的东西吗?我想它不会太难实现...这是不是一个糟糕的主意呢?
我正在寻找一个可以从R数据框中永久删除行的函数。例如:
> df<-data.frame(AA=LETTERS[1:5],
NN=c(NA, 12, 21, NA, 11))
> df
# AA NN
#1 A NA
#2 B 12
#3 C 21
#4 D NA
#5 E 11
当我使用complete.cases时,R只是从数据帧( df )中删除行,而不是创建具有新级别和行名的新df,如下所示:
> df<-df[complete.cases(df),]
> df
# AA NN
#2 B 12
#3 C 21