我有列表,其中元素名称是ID标签,并包含带有数值的向量.这些是不相等的(!)长度.
我想将其转换为数据框,其中我在一列中具有ID,在另一列中具有数值.例如:
$`1`
[1] 1 2
$`2`
[1] 1 2 3
$`3`
[1] 1
Run Code Online (Sandbox Code Playgroud)
至:
ID Obs
1 1
1 2
2 1
2 2
2 3
3 1
Run Code Online (Sandbox Code Playgroud) 我根据A列中的因子级别从我的数据框中创建了一个列表.在列表中我想删除该列.我的头说是lapply,但不是别的什么:P
$A
ID Test
A 1
A 1
$B
ID Test
B 1
B 3
B 5
Run Code Online (Sandbox Code Playgroud)
进入这个
$A
Test
1
1
$B
Test
1
3
5
Run Code Online (Sandbox Code Playgroud) 可能重复:
在R中的子集化数据帧中丢弃因子级别
我已经用一定的因子水平对观察进行了子集化.当检查是否已经完成时,summary()
仍然列出了水平,但没有观察到.它们不应该在子集中消失吗?
我正在重组一个物种名称的数据集.它有一个带有拉丁名称的列和具有普通名称的列(如果可用).我想制作第3列,在可用时给出琐碎的名称,否则为拉丁名称.琐碎的名字和拉丁名字都属于因子级.我试过if-loop:
if(art2$trivname==""){
art2$artname=trivname
}else{
art2$artname=latname
}
Run Code Online (Sandbox Code Playgroud)
它给了我正确的trivnames,但只在提供拉丁名字时给出了NA.
当我使用ifelse时,我只会得到数字.
一如既往,所有帮助赞赏:)
在考虑随机效应后,两个/更多的预测变量会变得更多/更少共线吗?
在我的情况下,我在建模之前测试了共线性,例如使用VIF,一切都检查出来.然而,不同模型的排名(使用IC)使我不确定它是否真的能够在预测变量之间分离.
有任何想法吗?
PS!那些代表比我更高的人可以添加一个更相关的标签,如共线性吗?
我有一个数据集,我希望在第一个观察年中删除第一个月的几个人的出现.有可能用ifelse做到这一点吗?就像是:
ifelse(ID=="1" & Month=="11" and Year=="2006", "remove these rows",
ifelse(ID=="2" & Month=="11" & Year=="2007", "remove these rows",
"nothing"))
Run Code Online (Sandbox Code Playgroud)
一如既往,所有帮助赞赏!:)
是否可以改变ddply的输出?我想知道是否有可能在一行上呈现子集的唯一结果,而不是给每个结果一个新行.例如
ID Season Year
5074 Summer 2008
5074 Summer 2009
5074 Winter 2008
5074 Winter 2009
5074 Winter 2010
Run Code Online (Sandbox Code Playgroud)
成...
ID Season Year
5074 Summer 2008,2009
5074 Winter 2008,2009,2010
Run Code Online (Sandbox Code Playgroud)
我经常使用ddply来手动诊断for循环的结果等,并且像这样显示结果会减少输出的长度并使检查更快.
干杯!
我没有使用data.table的经验,所以我不知道我的问题是否有解决方案(至少在Google上30分钟没有给出答案),但是就可以了。
对于data.frame,我经常使用以下命令检查唯一值的观察次数:
df$Obs=with(df, ave(v1, ID-Date, FUN=function(x) length(unique(x))))
Run Code Online (Sandbox Code Playgroud)
使用data.table时有相应的方法吗?
我正在做一些探索工作,我使用挖泥机{MuMIn}.在这个过程中,我想设置两个变量,只有当它们之间的相互作用存在时,它们才能被允许在一起,即它们不能仅作为主效应一起存在.
使用样本数据:我想挖掘模型fm1(不管它可能没有意义).如果变量GNP和Population一起出现,它们还必须包括它们之间的相互作用.
require(stats); require(graphics)
## give the data set in the form it is used in S-PLUS:
longley.x <- data.matrix(longley[, 1:6])
longley.y <- longley[, "Employed"]
pairs(longley, main = "longley data")
names(longley)
fm1 <- lm(Employed ~GNP*Population*Armed.Forces, data = longley)
summary(fm1)
dredge(fm1, subset=!((GNP:Population) & !(GNP + Population)))
dredge(fm1, subset=!((GNP:Population) && !(GNP + Population)))
dredge(fm1, subset=dc(GNP+Population,GNP:Population))
dredge(fm1, subset=dc(GNP+Population,GNP*Population))
Run Code Online (Sandbox Code Playgroud)
我如何指明dredge()
它应该忽略所有存在GNP和人口的模型,而不是它们之间的相互作用?
我试图根据分组中另一列中的条件替换列中的某些行值.
编辑:编辑以突出问题的递归性质.
例如
DT = data.table(y=rep(c(1,3), each = 3)
,v=as.numeric(c(1,2,4,4,5,8))
,x=as.numeric(rep(c(9:11),each=2)),key=c("y","v"))
DT
y v x
1: 1 1 9
2: 1 2 9
3: 1 4 10
4: 3 4 10
5: 3 5 11
6: 3 8 11
Run Code Online (Sandbox Code Playgroud)
在每个'y'中,我想要替换'x'的值,其中'v'具有观察值v + t(例如t = 3),其中2222(或实际上是函数的结果)得到以下结果:
y v x
1: 1 1 9
2: 1 2 9
3: 1 4 2222
4: 3 4 10
5: 3 5 11
6: 3 8 2222
Run Code Online (Sandbox Code Playgroud)
我试过以下,但无济于事.
DT[which((v-3) %in% v), x:= 2222, y][]
Run Code Online (Sandbox Code Playgroud)
它神秘地(?)导致: …
有可能让它显示组内密度而不是计数吗?
library(ggplot2);data(diamonds)
ggplot(diamonds, aes(carat, depth)) +
stat_bin2d(bins=40)+ facet_wrap(~color)
Run Code Online (Sandbox Code Playgroud)
这样可以更容易地比较各组之间的模式,因为有些组可能自然会更多.
问题与以下内容略有相似:如何在每列(按X轴)中缩放(标准化)ggplot2 stat_bin2d的值,这也是缺少答案的.
r ×13
data.table ×3
r-factor ×3
subset ×3
dataframe ×2
if-statement ×2
list ×2
regression ×2
conditional ×1
diagonal ×1
extract ×1
ggplot2 ×1
lme4 ×1
matrix ×1
mixed-models ×1
nlme ×1
plyr ×1
r-faq ×1
replace ×1
variables ×1
vector ×1