我有一个包含 240 个案例的数据集,我想在每个现有行之后创建一个空白行。给我留下了 480 行,其中一半已填充,另一半为空(然后我想自己填充一些数据)。
数据示例
id groep_MNC zkhs fbeh pgebdat p_age pgesl
1 3 1 1 1 1955-12-01 42.50000 1
2 5 1 1 1 1943-04-09 55.16667 1
3 7 1 1 1 1958-04-10 40.25000 1
4 10 1 1 1 1958-04-17 40.25000 1
5 12 1 1 2 1947-11-01 50.66667 1
6 14 1 1 2 1952-02-02 46.41667 1
Run Code Online (Sandbox Code Playgroud)
理想情况下,“id”应该被复制,因此看起来像这样:
id groep_MNC zkhs fbeh pgebdat p_age pgesl
1 3 1 1 1 1955-12-01 42.50000 1
2 3 NA …Run Code Online (Sandbox Code Playgroud) 我已经查看过有关此主题的不同问题,但到目前为止,没有人帮助我获得我想要的东西.
我有一个数据框,有两个变量(standards_'testname')和'predict_standardized_'testname').现在,我想计算两者之间的差异并将其存储在一个名为'testname'_finalscore的新变量中.
由于我有大约19个不同的测试,我想用R中的for循环来做这个 - 但我是新编写这种循环,我被卡住了.
我有一个测试列表,包含单独测试的所有名称:
testlist <- c("vlgt_ltfr", "vlgt_recog",
"vlgt_imrec", "wms_imrec",
"wms_delrec", "fluency_dier",
"fluency_beroep", "tapdom",
"tapndom", "traila", "trailb",
"erik_congruent", "erik_percincong",
"erik_incongruent", "stroop_baseline",
"stroop_interference", "subrs", "tmt_interference")
Run Code Online (Sandbox Code Playgroud)
为此,我编写了一个循环来计算标准化和预测标准化分数.
例:
for( test in testlist){
patdat[,paste0('standardized_',test)] <- (patdat[,test] - tempmean) / tempsd
patdat[,paste0('predicted_standardized_',test)] <- coef(mymod)[1] + coef(mymod)[2]*patdat[,'p_age'] + coef(mymod)[3]*patdat[,'nlviq']
Run Code Online (Sandbox Code Playgroud)
}
在此之后,我创建了不同的循环(不起作用),我尝试计算差异并将其存储在一个新变量中:
for( test in testlist){
normdata[,paste0(test,'_finalscore')] <- (normdata[,paste0('standardized_', test)] - normdata[,paste0('predicted_standardized_', test)])
}
for(test in testlist){
normdata[,paste0(test, '_finalscore')] <- normdata[get('standardized_',test)] - normdata[get('predicted_standardized_'), test]
}
for(test in testlist){
normdata[,paste0(test, '_finalscore')] <- (normdata['standardized_',test] …Run Code Online (Sandbox Code Playgroud) 例如数据见下文.假设我有一个包含两列A,B的data.frame.A由代码组成.代码链接到B列,其中包含人们可以居住的区域.一个代码可以对应多个区域.我希望创建一个文件,其中每一行都包含一个唯一的代码,后面是填充了代码所属区域的列.
示例数据
A B
<dbl> <chr>
1 1483 De Rijp
2 1483 De Rijp
3 1483 De Rijp-Gracht
4 1483 De Rijp-Gracht
5 1423 Huiswaard
6 1423 Huiswaard-Noord
7 1423 Huiswaard-Zuid
8 1811 Centrum
9 1811 Centrum
10 1811 Centrum
11 1811 Centrum
12 1811 Overdie
13 1811 Overdie
14 1811 Overdie
15 1811 Overdie
Run Code Online (Sandbox Code Playgroud)
我想最终得到什么:
code area area_1 area_2 area_3 area_4
<dbl> <chr> <chr> <chr> <chr> <chr>
1 1483 De Rijp De Rijp-Gracht
2 1423 Huiswaard Huiswaard-Noord Huiswaard-Zuid
3 …Run Code Online (Sandbox Code Playgroud)