我希望有一种简单的方法可以做到这一点,但搜索后无法找到答案.我有一个列表,并希望删除特定类的元素.
比如说我有清单
tempList <- list(2,4,'a', 7, 'f')
Run Code Online (Sandbox Code Playgroud)
如何删除所有字符条目只留下2,4和7的列表.
提前致谢
我有一个包含不同组,年份及其值的数据框,例如:
data <- data.frame(
group = c(rep('A', 120), rep('B', 120)),
year = rep(c(rep('2013-2014', 40), rep('2014-2015', 40), rep('2015-2016', 40)), 2),
value = rnorm(240)
)
Run Code Online (Sandbox Code Playgroud)
对于每组中的每一年,我想进行t检验以查看这些值是否与前几年显着不同(我一直使用函数t.test(x,y,var.equal = TRUE)来执行此操作在一次性)
我想返回一个数据帧和p值,或者最好是使用gtools :: stars.pval()生成的重要星.所以返回类似下面的内容
group year significance
A 2013-2014 NA
A 2014-2015 **
A 2015-2016 ***
B 2013-2014 NA
B 2014-2015
B 2015-2016
Run Code Online (Sandbox Code Playgroud)
在上述情况中,2014 - 2015年和2013 - 2014年间"A"差异的p值介于0.001和0.01之间,2015 - 2015年和2014 - 2015年A差异的p值<0.001.B的任何年份都没有任何显着差异的证据.
无法保证每个组的年数相同.
这样做的最好和最快的方法是什么?我希望我能用dplyr和group_by按组和年份来做吗?
我在数据帧上使用reshape2函数dcast.其中一个变量是一些因素,其中某些级别没有出现在数据框中,但我会在创建的新列中包含所有值.
例如,我说我运行以下内容
library(reshape2)
dataDF <- data.frame(
id = 1:6,
id2 = c(1,2,3,1,2,3),
x = c(rep('t1', 3), rep('t2', 3)),
y = factor(c('A', 'B', 'A', 'B', 'B', 'C'), levels = c('A', 'B', 'C', 'D')),
value = rep(1)
)
dcast(dataDF, id + id2 ~ x + y, fill = 0)
Run Code Online (Sandbox Code Playgroud)
我得到以下内容
id id2 t1_A t1_B t2_B t2_C
1 1 1 1 0 0 0
2 2 2 0 1 0 0
3 3 3 1 0 0 0
4 4 1 0 0 …
Run Code Online (Sandbox Code Playgroud) 我想通过django应用程序的管理页面中的非字段列进行筛选.例如,我可以有以下内容:
class Subject(models.Model)
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Student(models.Model)
name = models.CharField(max_length=100)
subject = models.ForeignKey(Subject)
def __unicode__(self):
return self.name
class School(models.Model)
school = models.CharField(max_length=100)
student = models.ForeignKey(Student)
def subject(self)
return self.student.subject.name
Run Code Online (Sandbox Code Playgroud)
我会在admin.py中有以下内容
class SchoolAdmin(admin.ModelAdmin):
list_display = ('school', 'student', 'subject')
list_filter = ('school', 'student', 'subject')
admin.site.register(School, SchoolAdmin)
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,因为我不能过滤主题,因为它没有引用字段?有谁知道这样做的最佳方式?通过搜索它看起来像SimpleListFilter可以做的伎俩,但我是python和django的新手,并无法解决如何为我的例子实现这一点.
提前致谢
我在R中有两个数据帧列表(每个列表中的相应数据帧大小相同).是否可以在一行中将每个列表中的相应数据帧添加到一起.
比如说我们有
list1 <- list('a' = data.frame('x'=c(0,1),'y'=c(2,0)), 'b' = data.frame('x'=c(1,1),'y'=c(1,1)))
list2 <- list('a' = data.frame('x'=c(1,2),'y'=c(1,1)), 'b' = data.frame('x'=c(0,1),'y'=c(0,1)))
Run Code Online (Sandbox Code Playgroud)
所以list1是:
$a
x y
0 2
1 0
$b
x y
1 1
1 1
Run Code Online (Sandbox Code Playgroud)
而list2是:
$a
x y
1 1
2 1
$b
x y
0 0
1 1
Run Code Online (Sandbox Code Playgroud)
最终的输出是:
$a
x y
1 3
3 1
$b
x y
1 1
2 2
Run Code Online (Sandbox Code Playgroud)
显然可以通过以下方式在两个单独的行中执行此操作:
listOutput <- list()
listOutput[['a']] <- list1[['a']] + list2[['a']]
listOutput[['b']] <- list1[['b']] + list2[['b']]
Run Code Online (Sandbox Code Playgroud)
但有一种简单的方法可以在一行中完成,也许使用lapply?
谢谢
我有一个数据帧列表.有没有办法找到包含特定rowname的数据框的索引?
例如,说我有
mylist<-list(
data.frame(c(1,1),c(1,1),row.names = c('row1','row2')),
data.frame(c(1,1),c(1,1),row.names = c('row3','row4'))
)
Run Code Online (Sandbox Code Playgroud)
我想找到哪里row3
,查询将返回2,因为它在我的列表中的第二个数据帧中.
我想使用grepl
R中的函数来查找字符串是否包含某些内容,但条件是它不在其他内容之前.
所以例如说我想找到一个包含模式的字符串'xx'
,只要它不在前面'yy'
.所以:
'123xx45'
世界回归 TRUE
'123yy4xx5'
也会TRUE
因为'yy'
不在前面而返回'xx'
但是'123yyxx45'
会回来FALSE
.
如果有什么不清楚或者你想要一个更好的例子,请告诉我.
我对 R 比较陌生,如果这是基础知识,我很抱歉。我有这个循环,里面有一个条件,可以在 2 个列表之间进行比较,并返回一个 TRUE/FALSE 值向量。我真正需要检查的是这个向量是否只包含 TRUE 值(意味着 2 个列表是相同的)
for ( i in 1:(length(sessions_items_list)-1)){
if (sessions_items_list[[i]]==sessions_items_list[[i+1]]){
identical_sessions_df [i,1] <- names(sessions_items_list[i])
identical_sessions_df [i,2] <- names(sessions_items_list[i+1])
#identical_sessions_df [i,3] <- sessions_items_list[[i]]
#identical_sessions_df [i,4] <- sessions_items_list[[i+1]]
}
}
Run Code Online (Sandbox Code Playgroud)
这是一些数据:
> sessions_items_list[[2]]
[1] "111502665618" "111505397996" "121238758674" "121480200508" "131159477858" "161469302097" "161474935929" "171526802604" "231197187139" "231381216285" "251502101205" "261650031415"
[13] "261652085962" "261652452940" "271538491767" "281398254987" "291227243345" "311065441334" "321561638226" "321566237993" "331042848072" "331251405185" "331366646532" "361096154736"
[25] "381043841996"
> sessions_items_list[[3]]
[1] "111502665618" "111505397996" "121238758674" "131159477858" "161469302097" "161474935929" "171526802604" "231197187139" "231381216285" "251502101205" …
Run Code Online (Sandbox Code Playgroud) 我正在使用R闪亮的应用程序并使用renderTable和tableOutput创建表.是否有可能使单元格内容的一部分变为粗体,同时保持其余部分正常文本.
例如,特定单元格中的一个条目可能是:
5.3% ~1%~7
我尝试在适当的数字周围硬编码**,但它只输出了星号.
谢谢