很棒的堆栈溢出的人! 我在纠结我的R代码。我有一大群人都去过很多医院--我想得到的是每个人的每种疾病的第一个病例。在删除重复项后,我有6613个观察值,我的数据集中有1306个唯一id。因此,我知道我需要至少有1306例初发疾病,而且可能更多,因为有些人有多种共病。 我已经按病人安排了,然后按日期安排了。例如:What my dataset looks like 因此,对于0001号患者,我希望得到他们的第一例心绞痛、慢性IHD以及他可能遇到的任何其他问题(实际上,一些患者需要17次住院,其中大多数人都会重新诊断。 我已经尝试了在StackOverflow上找到的几个解决方案,但我得到了35
我有一个大的数据集的样本,属于不同的群体,并在所涵盖的地区不同。数据集的结构简化如下。我现在想为每一组创建集合样本(子组),其中每个子组所涵盖的区域等于指定的区域(例如20)。样本应该被随机分配,不需要替换给每个子组,子组的数量应该在数据帧末尾的一个新列中列出。
SampleID Group Area Subgroup
1 A 1.5 1
2 A 3.8 2
3 A 6 4
4 A 1.9 1
5 A 1.5 3
6
我一直在用头撞墙试图弄清楚这件事。为了避免for循环,我想清零已经有值的列。
下面是列表l中的数据片段:
[[1]]
name team bye fpts
1 Arian Foster Hou 7 315
2 Adrian Peterson Min 4 233
3 Jamaal Charles KC 4 225
4 Peyton Hillis Cle 8 223
5 Chris Johnson Ten 9
我在R中使用dplyr对数据进行分组,我希望在每个组('A')中,在最后一次出现的观测('B')等于或大于1 (1,2,3或4)之后找到‘日期’。换句话说,1/2/3/4的“日期”变成了0。
简单地找到第一次出现0的日期就不能工作,因为在某些组中,1/2/3/4切换到0,然后再次返回,并且没有给出我想要的结果。
我希望在一个新的专栏('date.after')中给出每个组的“日期”。
例如,给定以下按A分组的数据样本(这已被简化,我的数据实际上按3个变量分组):
A B date
a 2 1
a 2 2
a 1 5
a 0 8
我想知道在R数据帧中for循环是如何工作的。这不是一个可重复的例子,但我想知道这个概念是否可行。如果df有一个日期、ID、数量和4个变量,我可以循环这些列吗?我需要从Var1列中删除NA行到Var4中,根据Amount列创建一个“权重向量”,然后计算加权平均值。
a<- names(df)
a<- a[4:7]
a
[1] "Var1" "Var2" "Var3" "Var4"
#df has Date, ID, Amount ,Var1, Var2, Var3, Var4
for(i in a) {
N
使用dplyr,尝试从整个数据帧筛选任何在1/5之前登录的用户。
User Date
A 1/1
A 1/2
A 1/5
A 1/7
B 1/2
C 1/6
D 1/4
D 1/7
预期结果:
User Date
C 1/6
由于A和D已经在1/5之前登录,我希望它们完全从数据框架中删除。
我能够识别在1/5之前登录的用户,但是我不知道如何从我的DF中删除他们,而不必手动地按过滤器过滤每个用户( user != "")。如果有大量的用户列表,这将是有问题的。
谢谢
在带有R的dplyr中,如果我按多个变量进行分组,那么可以按照ungroup的子集进行分组吗?据我所知,ungroup忽略了所提供的任何参数,并且总是取消对所有内容的分组。
示例:
mtcars %>%
group_by(cyl, vs, am) %>%
# this removes 'am' but grouping by 'cyl' and 'vs' remain
summarize(n = n()) %>%
ungroup(vs) # I want this to work but it ungrou
我在R中有一个巨大的数据框(A),看起来像这样:
Letters Frequency Numbers
a 0.15 1
b 0.67 2
c 0.85 7
d 0.4 3
我想首先根据" frequency“列的取值范围(大小为0.25的4个频率段)将A划分为4个数据帧,从0到1,这样我就得到:
A1 [0, 0.25]
Letters Frequency Numbers
a 0.15 1
A2 [0.25, 0.5