将相对观察值转换为数值

Converting relative observations into numerical values

这是我在学习 R 后的第一个项目 java。

我有一个(大)数据集,我已将其从 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'];  

您有什么建议可以很好地解决这个问题?谢谢!

如果我没理解错的话,你想知道 worsebetter 的计数差异吗?如果是这样,这样的事情就可以了。

# 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