我有一组看起来像这样的数据:
anim <- c(25499,25500,25501,25502,25503,25504)
sex <- c(1,2,2,1,2,1)
wt <- c(0.8,1.2,1.0,2.0,1.8,1.4)
data <- data.frame(anim,sex,wt)
data
anim sex wt anim2
1 25499 1 0.8 2
2 25500 2 1.2 2
3 25501 2 1.0 2
4 25502 1 2.0 2
5 25503 2 1.8 2
6 25504 1 1.4 2
Run Code Online (Sandbox Code Playgroud)
我希望在每个动物ID之前添加零:
data
anim sex wt anim2
1 025499 1 0.8 2
2 025500 2 1.2 2
3 025501 2 1.0 2
4 025502 1 2.0 2
5 025503 2 1.8 2
6 …Run Code Online (Sandbox Code Playgroud) 我需要将连续变量拆分/分成3个相等大小的组.
示例数据框
das <- data.frame(anim=1:15,
wt=c(181,179,180.5,201,201.5,245,246.4,
189.3,301,354,369,205,199,394,231.3))
Run Code Online (Sandbox Code Playgroud)
在被剪切后(根据值wt),我需要在新变量下面有3个类,wt2如下所示:
> das
anim wt wt2
1 1 181.0 1
2 2 179.0 1
3 3 180.5 1
4 4 201.0 2
5 5 201.5 2
6 6 245.0 2
7 7 246.4 3
8 8 189.3 1
9 9 301.0 3
10 10 354.0 3
11 11 369.0 3
12 12 205.0 2
13 13 199.0 1
14 14 394.0 3
15 15 231.3 2
Run Code Online (Sandbox Code Playgroud)
这将应用于大型数据集
我试图读取重复行名称的csv文件,但不能.我得到的错误信息是Error in read.table(file = file, header = header, sep = sep, quote = quote, : duplicate 'row.names' are not allowed.
我使用的代码是:
S1N657 <- read.csv("S1N657.csv",header=T,fill=T,col.names=c("dam","anim","temp"))
Run Code Online (Sandbox Code Playgroud)
我的数据示例如下:
did <- c("1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657","1N657")
aid <- c(101,102,103,104,105,106,107,108,109,110)
temp <- c(36,38,37,39,35,37,36,34,39,38)
data <- cbind(did,aid,temp)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我在数据框中有三个变量,并希望交换4列
"dam" "piglet" "fdate" "ssire"
Run Code Online (Sandbox Code Playgroud)
至
"piglet" "ssire" "dam" "tdate"
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使用R进行交换吗?
任何帮助将非常感谢.
巴兹
我想将我的一个数据集中的三列组合成一个变量名为"al_anim"的列,并删除任何重复项,将值(动物ID)从最低到最高排序,并将每个动物从1到N重新编号为变量名"new_id".
anim1 <- c(1456,2569,5489,1456,4587)
anim2 <- c(6531,6987,6987,15487,6531)
anim3 <- c(4587,6548,7894,3215,8542)
mydf <- data.frame(anim1,anim2,anim3)
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感谢!
巴兹
我想知道在记录的每个出生日期分娩的独特水坝的数量.我的数据框与此类似:
dam <- c("2A11","2A11","2A12","2A12","2A12","4D23","4D23","1X23")
bdate <- c("2009-10-01","2009-10-01","2009-10-01","2009-10-01",
"2009-10-01","2009-10-03","2009-10-03","2009-10-03")
mydf <- data.frame(dam,bdate)
mydf
# dam bdate
# 1 2A11 2009-10-01
# 2 2A11 2009-10-01
# 3 2A12 2009-10-01
# 4 2A12 2009-10-01
# 5 2A12 2009-10-01
# 6 4D23 2009-10-03
# 7 4D23 2009-10-03
# 8 1X23 2009-10-03
Run Code Online (Sandbox Code Playgroud)
我曾经使用aggregate(dam ~ bdate, data=mydf, FUN=length)但它计算了在特定日期生下的所有水坝
bdate dam
1 2009-10-01 5
2 2009-10-03 3
Run Code Online (Sandbox Code Playgroud)
相反,我需要这样的东西:
mydf2
bdate dam
1 2009-10-01 2
2 2009-10-03 2
Run Code Online (Sandbox Code Playgroud)
非常感激您的帮忙!
我有一组数据,我需要将某些变量(数字)的值编码为3个类.
我的数据集与此类似,但还有60个变量:
anim <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
wt <- c(181,179,180.5,201,201.5,245,246.4,189.3,301,354,369,205,199,394,231.3)
data <- data.frame(anim,wt)
> data
anim wt
1 1 181.0
2 2 179.0
3 3 180.5
4 4 201.0
5 5 201.5
6 6 245.0
7 7 246.4
8 8 189.3
9 9 301.0
10 10 354.0
11 11 369.0
12 12 205.0
13 13 199.0
14 14 394.0
15 15 231.3
Run Code Online (Sandbox Code Playgroud)
我需要将变量"wt"的值编码为3类:(wt> = 179&wt <200)= 1; (wt> = 200&wt <300)= 2; (wt> 300)= 3
哪个应该给我这个
> data2
anim wt SWT
1 …Run Code Online (Sandbox Code Playgroud) 我需要通过组合两个现有变量的值来创建一个新变量
anim <- c(1,2,3,4,5,6,7,8,9,10)
pgrp <- c(1,3,2,4,2,3,1,2,4,3)
fos <- c(2,1,1,2,1,2,1,2,2,1)
data <- data.frame(anim,pgrp,fos)
data
anim pgrp fos
1 1 1 2
2 2 3 1
3 3 2 1
4 4 4 2
5 5 2 1
6 6 3 2
7 7 1 1
8 8 2 2
9 9 4 2
10 10 3 1
Run Code Online (Sandbox Code Playgroud)
我需要我的新变量"pf"来获取"pgrp"和"fos"的值,如下所示
data
anim pgrp fos pf
1 1 1 2 12
2 2 3 1 31
3 3 2 1 21
4 4 …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,我从我的.csv文件中读取.在进行一些编辑工作之后,我现在需要将其写为.txt文件,其中(i)删除所有引号(ii)NA将整个文件中的每个引号替换为星号*,以及(iii)排除第一行(变量名称) .
到目前为止,以下脚本删除了引号,我只是想知道如何添加或可以完成(ii)和(iii).
write.table(ped5, "ped5.txt" ,row.names=FALSE)
ped5 <- read.table("ped5.txt", header=TRUE)
write.table(ped5, "ped7.txt", row.names=FALSE, quote=FALSE)
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感谢!
我在R中运行逻辑回归并进行"反向消除"以获得我的最终模型:
FulMod2 <- glm(surv~as.factor(tdate)+as.factor(tdate)+as.factor(sline)+as.factor(pgf)
+as.factor(weight5)+as.factor(backfat5)+as.factor(srect2)
+as.factor(bcs)+as.factor(loco3)+as.factor(fear3)
+as.factor(teats)+as.factor(preudder)+as.factor(postudder)
+as.factor(colos)+as.factor(tb5) +as.factor(respon3)
+as.factor(feed5)+as.factor(bwt5)+as.factor(sex)
+as.factor(fos2)+as.factor(gest3)+as.factor(int3),
family=binomial(link="logit"),data=sof)
Run Code Online (Sandbox Code Playgroud)
尝试运行向后消除脚本时:
step(FulMod2,direction="backward",trace=FALSE)
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
Error in step(FulMod2, direction = "backward", trace = FALSE) :
number of rows in use has changed: remove missing values?
Run Code Online (Sandbox Code Playgroud)
这是我使用向后消除功能运行的第二个模型.当我做后退消除以获得我的最终模型时,第一个模型很好.
任何帮助将非常感谢!
巴兹
我试图根据现有列中出现的值创建一个新列(变量),这样如果现有列中有NA,则新列中的相应值应为0(零),如果不是NA那么它应该是1(一).下面给出了一个示例数据:
aid=c(1,2,3,4,5,6,7,8,9,10)
age=c(2,14,NA,0,NA,1,6,9,NA,15)
data=data.frame(aid,age)
Run Code Online (Sandbox Code Playgroud)
我的新数据框应如下所示:
aid=c(1,2,3,4,5,6,7,8,9,10)
age=c(2,14,NA,0,NA,1,6,9,NA,15)
surv=c(1,1,0,1,0,1,1,1,0,1)
data<-data.frame(aid,age,surv)
data
Run Code Online (Sandbox Code Playgroud)
我希望我的问题足够清楚.
R社区的帮助非常感谢!
巴兹
当使用the进行反向消除时step(),是否可以仅包括那些重要因素,例如,P <0.05?
我现在正在使用这条线
step(FulMod3,direction="backward",trace=FALSE)
Run Code Online (Sandbox Code Playgroud)
得到我的最终模特.
r ×12
variables ×3
regression ×2
break ×1
continuous ×1
formatting ×1
names ×1
r-factor ×1
r-faq ×1
replace ×1
row ×1
split ×1
subclass ×1
swap ×1
unique ×1