我是 R 的新手,我不知道如何让 R 计算子组的平均值,而子组本身就是子组的平均值。我会解释得更清楚。
我有一个像这样的数据框:
GROUP WORD WLN
1 1 4
1 1 3
1 1 3
1 2 2
1 2 2
1 2 3
2 3 1
2 3 1
2 3 2
2 4 1
2 4 1
2 4 1
... ... ...
Run Code Online (Sandbox Code Playgroud)
但真实的一共有5组25个单词(每组5个单词;每个单词都被5个受试者分配了1到4的数字......)。
我需要获取每个单词的 WLN 平均值,我可以使用循环轻松完成此操作并将结果保存在向量中;但然后我需要一个向量,其中根据单词所属的组来表示这些平均值...所以我需要第1组的单词的平均值,然后是第2组的单词的平均值...(我不知道不知道我是否说清楚了)。
如果不一组一组地做,我怎样才能得到这个呢?
我有一个data.frame,dim = 400行和15000列.我想应用一个条件,对于属于每个组的行,由df$Group我来定义,我必须检查该组是否具有超过50%的行的值.如果是,则保留现有值,否则全部替换0.
例如,对于组a df[1:6,1],
则将替换if sum(df[1:6,1] == 0)/length(df[1:6,1]) >50%所有值.否则现有值将保留.df[1:6,1]0
样本输入:
df <- read.table(text= "DATA r1 r2 r3 Group
a1 6835 256 0 a
a2 5395 0 67 a
a3 7746 0 30 a
a4 7496 556 50 a
a5 5780 255 0 a
a6 6060 603 0 a
b1 0 0 0 b
b2 0 258 0 b
b3 0 0 0 b
b4 0 0 0 b
b5 5099 …Run Code Online (Sandbox Code Playgroud) 我希望根据另一个条目的值更改矩阵中某个条目的值.最简单的解释一个例子:
Matrix
ABC-DEF 1 0 0 0
HIJ-KLM 0 0 0 0
NOP-QRS 1 0 0 0
KLM-HIJ 0 0 0 0
DEF-ABC 0 0 0 0
QRS-NOP 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
如您所见,上面矩阵中的每一行都有一个对应物(例如ABC-DEF的对应物是DEF-ABC).
有什么方法可以让我看看哪一行在第一列中有一个,然后在其对应的第四列中放置一个?在上面的例子中:
ABC-DEF 1 0 0 0
HIJ-KLM 0 0 0 0
NOP-QRS 1 0 0 0
KLM-HIJ 0 0 0 0
DEF-ABC 0 0 0 2
QRS-NOP 0 0 0 2
Run Code Online (Sandbox Code Playgroud)
我很困难,真的很感激任何帮助!谢谢!
我有一个使用 ggplot2 的折线图,其中包含三行(在我的数据框中有变量名称,例如“A”、“B”和“C”)。我想添加一个 geom_smooth 使用method=loess,但我想添加基于“B”和“C”的最小值的回归线。有没有办法做到这一点?
为了说明,这是一个模拟代码:
names <- c('n1', 'n2', 'n3', 'n4', 'n5')
aline <- c(0.18, 0.21, 0.23, 0.20, 0.16)
bline <- c(0.50, 0.40, 0.30, 0.20, 0.10)
cline <- c(0.14, 0.20, 0.30, 0.35, 0.33)
min_bc <- c(0.14, 0.20, 0.30, 0.20, 0.10)
df <- data.frame(name, aline, bline, cline)
df.m <- melt(df)
g <- ggplot(df.m, aes(group=1, names, value, colour=variable))
g <- g + geom_line(aes(group=variable))
g <- g + geom_point(aes(colour=variable), alpha=0.4)
Run Code Online (Sandbox Code Playgroud)
我想使用alineand添加回归线min_bc,而不实际绘制min_bc。
另外,我想把它放在:一般来说,我可能有一些数据,我想使用不同的数据转换来绘制(在同一个图中)不同的线(或点、条形等)。是否有任何综合文档可以让我大致了解如何在 R/ggplot 中执行此类操作?
我有一些特殊格式的字符串,代表集合.在R中,我想将它们转换为相似度矩阵.
例如,一个字符串显示1 + 2包含一个集合,3个单独在一个集合中,4,5和6包含一个集合是:
"1+2,3,4+5+6"
Run Code Online (Sandbox Code Playgroud)
对于上面的例子,我希望能够生产
Run Code Online (Sandbox Code Playgroud)[,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 1 0 0 0 0 [2,] 1 1 0 0 0 0 [3,] 0 0 1 0 0 0 [4,] 0 0 0 1 1 1 [5,] 0 0 0 1 1 1 [6,] 0 0 0 1 1 1
看起来这应该是一项非常简单的任务.我该怎么办呢?
我正在寻找一种简单的方法来获得M中长度N的所有可能的独特组合.
这是一个简单的例子:
M <- c( 1, 2, 3, 4, 5 )
N <- 2
Run Code Online (Sandbox Code Playgroud)
预期产量:
1, 2
1, 3
1, 4
1, 5
2, 3
2, 4
2, 5
3, 4
3, 5
4, 5
Run Code Online (Sandbox Code Playgroud) 我有一个没有任何内容的向量 x。
dput(x)
""
Run Code Online (Sandbox Code Playgroud)
当我这样做时,length(x)or nrow(data.frame(x)),它显示为 1。
我将如何设置 if 语句,如果它为空,则转到下一个?
我有它:
if(length(x)>1){
Run Code Online (Sandbox Code Playgroud)
似乎没有工作。
我创建了一个逻辑回归模型并用它来预测出勤率:
LogModel <- glm(formula = Attended ~ City + Duration,
family = binomial(logit), data = MyData)
prediction <- predict(LogModel, MyData, type = "response")
Run Code Online (Sandbox Code Playgroud)
brierscore()为了获得 Brier 分数,我应该在函数中使用哪些参数?
最近,当我试图在RI中绘图时,不断收到此错误.谁能告诉我为什么我似乎无法做散点图?我已粘贴下面的终端屏幕.
tcmg2o4 <-read.table("~/Documents/research/metal.oxides/TcMg2O4.inverse/energydata.txt")
tcmg2o4
V1 V2
1 Lattice_constant Total_energy
2 8.0 -371.63306746
3 8.1 -375.035492
4 8.2 -378.8669067
5 8.3 -380.34136459
6 8.4 -382.3921237
7 8.5 -383.60394736
8 8.6 -384.09517631
9 8.7 -383.77668067
10 8.8 -382.43806866
11 8.9 -381.42213458
12 9.0 -379.63327976
attach(tcmg2o4)
plot(Lattice_constant, Total_energy)
Error in plot(Lattice_constant, Total_energy) :
object 'Lattice_constant' not found
plot(V1,V2)
Run Code Online (Sandbox Code Playgroud) 我试图绘制一个对数刻度,但我继续得到这个错误:
Error in plot.window(...) : invalid "log=1/h" specification.
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么.以下是我的代码:
#function
function(stepsize, temp_val, counter) {
while(counter < 0) {
counter <- counter + stepsize
px_norm <- dnorm(counter, mean = 0, sd = .04)
temp_val <- temp_val + px_norm }
temp_val <- 2*temp_val
temp_val <- temp_val *(stepsize/2)
print(temp_val, digits = 12)
}
#Initial step size
h <- .01
while (h > .00001) {
x <- calc_error(h, 0, -5) #Gives me a result around .5
err <- x - (exp(-.02)*0.5)
plot(1/h, err, log …Run Code Online (Sandbox Code Playgroud)