我有一个包含以下信息的数据集:
Subject Value1 Value2 Value3 UniqueNumber
001 1 0 1 3
002 0 1 1 2
003 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
如果UniqueNumber的值> 0,我想将dplyr的值与第1行到UniqueNumber中的每个主题相加并计算均值.因此对于Subject 001,sum = 2并且mean = .67.
total = 0;
average = 0;
for(i in 1:length(Data$Subject)){
for(j in 1:ncols(Data)){
if(Data$UniqueNumber[i] > 0){
total[i] = sum(Data[i,1:j])
average[i] = mean(Data[i,1:j])
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我只想查看"UniqueNumber"列中列出的列数.所以这循环遍历每一行并停在'UniqueNumber'中列出的列.示例:带有Subject 002的第2行应该将"Value1"和"Value2"列中的值相加,而带有Subject 003的第3行应该只对"Value1"列中的值求和.
我正在尝试创建一个 SAS 宏,它将为实验室值生成一个移位表。我有以下数据:
Study Subject Lab Measure Range Group Visit
Study1 001 Lab1 45 Normal 1 Baseline
Study1 001 Lab1 50 High 1 Visit2
Study1 001 Lab1 55 High 1 Visit3
Study1 002 Lab1 40 Normal 1 Baseline
Study1 002 Lab1 44 Normal 1 Visit1
Study1 002 Lab1 45 Normal 1 Visit2
Study1 002 Lab1 46 Normal 1 Visit3
Study1 002 Lab1 52 High 1 Visit4
Run Code Online (Sandbox Code Playgroud)
我想创建以下输出:
Final Lab Value
Parameter Group Baseline Value Low Normal High Missing
Lab1 Study …
Run Code Online (Sandbox Code Playgroud) 我正在尝试利用三元组来预测下一个单词。
我已经能够上传语料库并根据频率识别最常见的三元组。我在 R 中使用了“ngrams”、“RWeka”和“tm”包。我按照这个问题寻求指导:
text1<-readLines("MyText.txt", encoding = "UTF-8")
corpus <- Corpus(VectorSource(text1))
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
tdm <- TermDocumentMatrix(corpus, control = list(tokenize = BigramTokenizer))
Run Code Online (Sandbox Code Playgroud)
如果用户要输入一组单词,我将如何生成下一个单词?例如,如果用户输入“can of”,我将如何检索三个最可能的单词(例如啤酒、苏打水、油漆等)?
我想根据参数值列表来检索二阶多项式回归线的值。
这是模型:
fit <- lm(y ~ poly(age, 2) + height + age*height)
Run Code Online (Sandbox Code Playgroud)
我想使用年龄值列表,并在回归线上检索值,以及标准偏差和标准误差。“年龄”是一个连续变量,但我想创建一个离散值数组并从回归线返回预测值。
例:
age <- c(10, 11, 12, 13, 14)
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 R 中转置数据帧,但运气不佳。
数据框包含一个表观遗传数据集,第一列中有 300,000 多个 CpG 位点。74 个额外的列被分成对照组和实验组(癌症 = 69,正常 = 5)。
我已将数据框转换为矩阵,以便可以转置数据并将其转换回数值。但是,每次我尝试将数据转换回数据框时,它最终都会变成一个列表。
我正在尝试执行以下操作:
将标题的名称设为第一列中的值(我想删除的 X 除外)。
数据[1:10, 1:10]
X Tumor.33 Normal.01 Tumor.01 Tumor.34 Tumor.35 Tumor.02 Tumor.03
cg00000029 0.29224 0.32605 0.58762 0.32397 0.23482 0.24012 0.22941
cg00000108 0.91243 0.89785 0.92337 0.90080 0.91220 0.92256 0.92709
cg00000109 0.77676 0.73910 0.81545 0.73603 0.76276 0.85808 0.85142
cg00000165 0.34261 0.30960 0.56392 0.32363 0.33980 0.61755 0.70855
cg00000236 0.84688 0.80654 0.84423 0.80935 0.85600 0.87766 0.83509
cg00000289 0.61535 0.60874 0.62496 0.66421 0.60556 0.66824 0.65243
cg00000292 0.72491 0.63333 …
Run Code Online (Sandbox Code Playgroud)我正在尝试编写一个for循环,该循环将比较两个人之间的值,而不是同一个人。以下数据框包含五个主题的值:
Value1
Subject1 0
Subject2 1
Subject3 5
Subject4 6
Subject5 8
Run Code Online (Sandbox Code Playgroud)
我编写了一个双循环,该循环根据以下条件创建“ Value2”变量:
例如,主题1的Value1小于其他四个主题;这应该导致-4。到目前为止,我编写的循环适用于第一个主题,但无法迭代到第二个主题。
Value2<-0
i = 0
w = 0
for(i in 1:length(Value1)){
for(j in 1:length(Value1)){
if(i != j){
Value1[i] = w
if(w > Value1[j]){
Value2[i] = Value2[i] + 1
}
if(w < Value1[j]){
Value2[i] = Value2[i] - 1
}
if(w == Value1[j]){
Value2[i] = Value2[i] + 0
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下数据:
Group Subject Lab LabValue Visit Baseline Count
1 001 Lab1 10 Day 1 Y 1
1 001 Lab1 11 Day 2 2
1 001 Lab1 12 Day 30 3
1 002 Lab1 11 Day 1 Y 1
1 002 Lab1 12 Day 30 2
2 005 Lab1 9 Day 1 Y 1
2 005 Lab1 16 Day 2 2
2 005 Lab1 11 Month 1 3
2 006 Lab1 18 Day 1 Y 1
2 006 Lab1 10 Day …
Run Code Online (Sandbox Code Playgroud) 我想检索SAS文件中列中的特定文本.
该文件将如下所示:
Patient Location infoTxt
001 B Admission Code: 123456 X
Exit Code: 98765W
002 C Admission Code: 4567 WY
Exit Code: 76543Z
003 D Admission Code: 67890 L
Exit Code: 4321Z
Run Code Online (Sandbox Code Playgroud)
我想只检索排序代码和退出代码的冒号之后的信息,并将它们放在各自的列中."代码"可以是字母,数字和空格的任意组合.新数据如下所示:
Patient Location AdmissionCode ExitCode
001 B 123456 X 8765W
002 C 4567 WY 76543Z
003 D 67890 L 4321Z
Run Code Online (Sandbox Code Playgroud)
我不熟悉SAS中的功能,但逻辑可能如下所示:
data want;
set have;
do i = 1 to dim(infoTxt)
AdmissionCode = substring(string1, regexpr(":", string) + 1);
ExitCode = substring(string2, regexpr(":", string) + 1);
run;
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,string1表示infoTxt中的第一行文本,string2表示第二行文本infoTxt.
我试图在没有任何for或while循环的情况下编写以下程序:
function [B] = check(A, k)
B = [];
[nrow ncol] = size(A);
for i = 1:nrow
for j = 1:ncol
if mod(A(i,j),k) == 0
B = [B;A(i,j)];
else
B = [B;A(i,j)*k];
end
end
end
Run Code Online (Sandbox Code Playgroud)
基本上,该程序检查矩阵A中的元素是否可被元素k整除.如果A(i,j)可被k整除,则A(i,j)处的元素将被置于矩阵B中.如果A(i,j)不能被k整除,那么A(i,i, j)将乘以k并放在矩阵B中.
我想在SAS中组合以下行.这是数据:
StudentNumber Test1 Test2 Test3
001 . 86 .
001 94 . .
001 . . 75
002 68 . .
002 . 82 .
002 . . 97
Run Code Online (Sandbox Code Playgroud)
我希望行看起来如下所示:
StudentNumber Test1 Test2 Test3
001 94 86 75
002 68 82 97
Run Code Online (Sandbox Code Playgroud)
我习惯于将列与COALESCE函数合并,但我不确定如何使用行来执行此操作.
我想按两个列条目比较主题:“值”和“长度”。将该主题与数据框中的所有其他主题进行比较;他们将为“长度”列中值较高的每个主题获得-1。如果“长度”列中的条目的值较高,则它们将获得+1。如果它们的值等于“长度”(Length)列中另一个主题的值,则将比较“值”(Value)列中的值(如果条目更大,则为+1;如果值相等,则为0;如果值等于-1,则为-1。减)。新列“ Value2”中的条目将是来自比较的+1、0或-1值的总和。
我已经在R底下写了一些东西,但是似乎没有用。
Value Length
Subject1 2 0
Subject2 0 1
Subject3 5 1
Subject4 4 5
Subject5 4 5
Subject6 7 6
Subject7 9 8
for(i in 1:length(x)){
for(j in 1:length(x)){
if(i != j){
w = z[c(-i), ]
if(w$length[i] < w$length[j]){ value2[i] = value2[i] -1 }
if(w$length[i] > w$length[j]){ value2[i] = value2[i} + 1 }
if(w$length[i] == w$length[j]){
if(w$value[i] < w$value[j]){ value2[i] = value2[i] - 1 }
if(w$value[i] > w$value[j]){ value2[i] = value2[i] + 1 }
if(w$value[i] == w$value[j]){ …
Run Code Online (Sandbox Code Playgroud) 我想用 R 中的最后观察结转 (LOCF) 方法替换所有 NA 值。我拥有的数据集如下:
Value1 Value2 Value3 Group
100 56 82 Group1
150 NA 97 Group2
NA 66 NA Group3
120 NA NA Group4
Run Code Online (Sandbox Code Playgroud)
我想创建以下数据集:
Value1 Value2 Value3 Group
100 56 82 Group1
150 56 97 Group2
150 66 97 Group3
120 66 97 Group4
Run Code Online (Sandbox Code Playgroud)
任何有关如何做到这一点的见解将不胜感激。