我有这样的文本文件:
A
B
C
Run Code Online (Sandbox Code Playgroud)
每个元素都有一个像这样的子集:
A = { a1, a2, a3 }
B = { b1, b2 }
C = { c1, c2, c3 }
Run Code Online (Sandbox Code Playgroud)
我想生成这个:
a1, b1, c1
a2, b1, c1
a3, b1, c1
a1, b2, c1
a1, b1, c2
a1, b1, c3
我不知道文本文件中的元素数量(例如可能是:A,B,C,D,E),并且子集的大小可能不同.
我只能认为这是一个带有2个索引的递归函数,可能是"数组中的位置"和"数组的索引",但我真的不知道如何实现所有这些.
我甚至尝试使用相同的输入调整笛卡尔积的函数,但我完全失败了.我不需要生成笛卡尔积.
我有一个非常大但与此非常相似的数据框:
df <- data.frame(Group = rep(c('A', 'B', 'C', 'D'), 50),
Number = sample(1:100, 200, replace = T))
Group Number
A 52
B 74
C 22
D 90
A 7
B 93
C 50
D 10
A 31
B 19
Run Code Online (Sandbox Code Playgroud)
我有另一个名为"remove"的数据框,如下所示:
>remove
Group Number
A 52
C 22
B 93
D 10
Run Code Online (Sandbox Code Playgroud)
如何对df数据进行子集,以便在"remove"中排除所有具有Group和Number值的行以获取以下数据帧?该文件非常大,因此我无法手动输入要排除的值.期望的输出:
Group Number
B 74
D 90
A 7
C 50
A 31
B 19
Run Code Online (Sandbox Code Playgroud)
谢谢!
我想根据列中的值创建多个数据帧.
样本数据
Run Code Online (Sandbox Code Playgroud)df Index Product ID Amount 200 Prod1 01 100 201 Prod1 01 150 202 Prod1 01 123 203 Prod1 01 123 204 Prod1 02 110 205 Prod1 02 175 206 Prod1 02 190 207 Prod2 03 120 208 Prod2 03 135 209 Prod2 03 150
我想为每个ID添加一列作为Base.Base的值是每个ID中的第一个金额值.
>df1
Index Product ID Amount Base
200 Prod1 01 100 100
201 Prod1 01 150 100
202 Prod1 01 123 100
203 Prod1 01 123 100
204 Prod1 02 110 110
205 …Run Code Online (Sandbox Code Playgroud) 假设我有一个如下所示的数据集:
> data
iso3 Vaccine Coverage
1 ARG DPT3 95
2 ARG MCV 94
3 ARG Pol3 91
4 KAZ DPT3 99
5 KAZ MCV 98
6 KAZ Pol3 99
7 COD DPT3 67
8 COD MCV 62
9 COD Pol3 66
Run Code Online (Sandbox Code Playgroud)
我想根据同时满足的几个条件过滤掉一些记录; 比方说,我想从阿根廷(ARG)那里删除任何覆盖率超过93%的数据.因此,结果应排除第1行和第2行:
iso3 Vaccine Coverage
3 ARG Pol3 91
4 KAZ DPT3 99
5 KAZ MCV 98
6 KAZ Pol3 99
7 COD DPT3 67
8 COD MCV 62
9 COD Pol3 66
Run Code Online (Sandbox Code Playgroud)
我尝试使用,subset()但它排除了太多:
> subset(data, …Run Code Online (Sandbox Code Playgroud) 假设我有以下向量:
x <- c(5, 6, 3, 7, 5, 2, 6, 7, 5, 3, 1, 5, 6)
Run Code Online (Sandbox Code Playgroud)
我想用参数n创建一个函数,该函数产生前n个元素的总和。
我有两个数据:list包含271个值,listfull包含355个值(其中271个与列表中的相同).我想要的是在这两个文件中打印出84个不同的值.当我编写代码以打印"相同"值时,它们可以工作,但不适用于"不同情况".我试图找出原因,但不能.你可以帮我解决这个问题.谢谢
list<-read.table("C:\\Data\\list.txt", header=T)
listfull<-read.table("C:\\Data\\listfull.txt", header=T)
for (i in 1:271)
{
for (j in 1:355)
{
if(list$Cow_ID[i]==listfull$Cow_ID[j])
bo<-data.frame(listfull[j,])
}
write.table(bo,"C:\\Data\\store.txt",row.names = FALSE, dec = ".", na = "NA", sep = " ", append = TRUE, col.names = FALSE)
}
Run Code Online (Sandbox Code Playgroud)
//以上代码有效!
//但不是以下内容:
for (i in 1:355)
{
for (j in 1:271)
{
if(listfull$Cow_ID[i]!=listfull$Cow_ID[j])
bo<-data.frame(listfull[i,])
}
write.table(bo,"C:\\Data\\store.txt",row.names = FALSE, dec = ".", na = "NA", sep = " ", append = TRUE, col.names = FALSE)
}
Run Code Online (Sandbox Code Playgroud)
这里list和listfull的样子如下:
Lisfull List
Cow_ID Cow_ID
26 26 …Run Code Online (Sandbox Code Playgroud) 我正在尝试对我的数据帧进行聚合.问题是我需要聚合超过一百列.现在我把它们全部打印出来
df_grouped = df.groupby(['Column1'])['Column2','Column3','Column4','Column5'].sum()
Run Code Online (Sandbox Code Playgroud)
直到最后一栏.如果必须进行更改,则非常烦人且难以维护.有没有办法在没有明确输入的情况下引用这些列?
问候Delphian堆垛机.
我搜索了网站,所有"排列等级和排名"相关的讨论,找不到符合我需求的那个.
在德尔福:
有一个数组:
Members: array [0..3] of Byte = (0,1,2,3);
Run Code Online (Sandbox Code Playgroud)
如果想要迭代由3个元素组成的所有不同排列,可以估计结果列表将由24行组成,按字典顺序排列为:
0 012
1 013
2 021
3 023
4 031
5 032
6 102
7 103
8 120
9 123
10 130
11 132
12 201
13 203
14 210
15 213
16 230
17 231
18 301
19 302
20 310
21 312
22 320
23 321
Run Code Online (Sandbox Code Playgroud)
可以使用"n选择k"公式计算列表的大小,其中"n"表示成员数,"k"表示选择数:
p(n,k) = n! / (n-k)!
p(4,3) = 4! / (4-3)! = (4 x 3 x 2 x 1) / …Run Code Online (Sandbox Code Playgroud) 我想计算所有可能的子集形式数组的总和。
$array= Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 ); //changing
function powerSet($array) {
// add the empty set
$results = array(array());
foreach ($array as $element) {
foreach ($results as $combination) {
$results[] = array_merge(array($element), $combination);
$total= array_sum($results); // I try this
}
echo $total; // I try this
}
return $results;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码用于查找子集。我从这里找到了这段代码。我只添加array_sum但显示0的方式如何找到每个子集的总和?有什么办法吗?
按月划分的子集数据仅包括3月,6月,9月和12月。
设定:
x1 <- rnorm(24,0,1)
x2 <- rnorm(24,0,1)
x3 <- rnorm(24,0,1)
mat1 <- data.frame(rbind(x1,x2,x3))
colnames(mat1) <- c("Jan.96", "Feb.96", "Mar.96", "Apr.96", "May.96", "Jun.96", "Jul.96", "Aug.96", "Sep.96", "Oct.96", "Nov.96", "Dec.96", "Jan.97", "Feb.97", "Mar.97", "Apr.97", "May.97", "Jun.97", "Jul.97", "Aug.97", "Sep.97", "Oct.97", "Nov.97", "Dec.97")
Run Code Online (Sandbox Code Playgroud)
我希望最终矩阵只包含名称包含“ Mar”,“ Jun”,“ Sep”,“ Dec”的列。输出应采用以下形式:
output <- cbind(mat1$Mar.96, mat1$Jun.96, mat1$Sep.96, mat1$Dec.96, mat1$Mar.97, mat1$Jun.97, mat1$Sep.97, mat1$Dec.97)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0.5179178 -0.4810577 0.2178482 -0.4867642 -0.1219542 0.3185248 1.464423 0.4775712
[2,] 0.4905709 1.2061020 -0.6434293 -0.1864487 -0.2297027 -0.3290413 -3.438259 …Run Code Online (Sandbox Code Playgroud)