这是我在学习java之后在R中的第一个项目。
我有一个(大)数据集,我已经从csv文件导入到数据框中。
我已经确定了这个问题的两个相关专栏,第一个有患者名字,第二个是询问患者肿胀程度。
肿胀程度是相对的,即更好,更差或大致相同。
并非所有患者都有相同数量的观察结果。
我很难将这些相对值转换为数值,可用作更大分析的一部分。
以下是对我认为可能是合适解决方案的伪代码:
for row in 'patientname'
patientcounter = dtfr1[row, 'patientname'];
if dtfr1[row, 'patientname'] == patientcounter
if dtfr1[row, 'Does.you.swelling.seem.better.or.worse'] == 'better'
conditioncounter--;
dtfr1[row, 'Does.you.swelling.seem.better.or.worse'] = conditioncounter;
elseif [row, 'Does.you.swelling.seem.better.or.worse'] == 'better'
conditoncounter++;
dtfr1[row, 'Does.you.swelling.seem.better.or.worse'] = conditioncounter;
else
dtfr1[row, 'Does.you.swelling.seem.better.or.worse'] = conditioncounter;
if dtfr1[row, 'patientname'] =! patientcounter
patientcounter = dtfr1[row, 'patientname'];
您对这个问题的良好解决方案有什么建议?谢谢!
答案 0 :(得分:0)
如果我理解正确,您希望患者的worse
和better
计数有所不同吗?如果是这样,这样的事情就行了。
# Simulated data
dtfr1 <- data.frame(patient = sample(letters[1:3], 100, replace=TRUE),
condition = sample(c("better", "worse"), 100, replace=TRUE))
head(dtfr1)
# patient condition
# 1 a worse
# 2 b better
# 3 b worse
# 4 a better
# 5 c worse
# 6 a better
better_count <- tapply(dtfr1$condition, dtfr1$patient, function(x) sum(x == "better"))
worse_count <- tapply(dtfr1$condition, dtfr1$patient, function(x) sum(x == "worse"))
worse_count - better_count
# a b c
# 5 0 -1