Stimuli Selection

Selection

Remove couples

df <- napsero |>
  filter(Category %in% c("Male", "Female", "Faces", "People")) |>
  mutate(Type = ifelse(Category %in% c("Female", "Male"), "Erotic", "Non-erotic"))

Select based on norms

men <- df |>
  filter(Type == "Erotic") |>
  group_by(Category) |>
  slice_max(Men_Arousal, n=8, with_ties = FALSE) |>
  pull(ID) |> 
  c(
    df |>
      filter(Type == "Erotic") |>
      group_by(Category) |>
      slice_min(Men_Arousal, n=2, with_ties = FALSE) |>
      pull(ID))

women <- df |>
  filter(Type == "Erotic", !ID %in% men) |>
  group_by(Category) |>
  slice_max(Women_Arousal, n=8, with_ties = FALSE) |>
  pull(ID) |> 
  c(
    df |>
      filter(Type == "Erotic", !ID %in% men) |>
      group_by(Category) |>
      slice_min(Women_Arousal, n=2, with_ties = FALSE) |>
      pull(ID)
  )

neutral <- df |>
  filter(Type == "Non-erotic", !ID %in% c(men, women)) |>
  mutate(Arousal = (Men_Arousal + Women_Arousal) / 2) |>
  slice_min(Arousal, n=10, with_ties = FALSE) |>
  pull(ID)

pos_arousing <- df |>
  filter(Type == "Non-erotic", !ID %in% c(men, women, neutral)) |>
  mutate(Arousal = (Men_Arousal + Women_Arousal) / 2,
         Valence = (Men_Valence + Women_Valence) / 2) |>
  filter(Valence > 5) |>
  slice_max(Arousal, n=10, with_ties = FALSE) |>
  pull(ID)

selected <- unique(c(men, women, neutral, pos_arousing))

cat(
  paste0("N (men) = ", length(men), "\nN (women) = ", length(women),
       "\nN (neutral) = ", length(neutral),  "\nN (arousing-positive) = ", length(pos_arousing),
       "\nTotal = ", length(selected))
)
N (men) = 20
N (women) = 20
N (neutral) = 10
N (arousing-positive) = 10
Total = 60
selected
 [1] "Female_018_h.jpg" "Female_021_h.jpg" "Female_020_v.jpg" "Female_022_h.jpg"
 [5] "Female_002_h.jpg" "Female_011_h.jpg" "Female_004_v.jpg" "Female_017_v.jpg"
 [9] "Male_022_v.jpg"   "Male_006_v.jpg"   "Male_005_v.jpg"   "Male_008_v.jpg"  
[13] "Male_007_h.jpg"   "Male_017_v.jpg"   "Male_014_v.jpg"   "Male_013_v.jpg"  
[17] "Female_016_h.jpg" "Female_008_v.jpg" "Male_024_h.jpg"   "Male_015_v.jpg"  
[21] "Female_003_v.jpg" "Female_009_h.jpg" "Female_005_v.jpg" "Female_023_h.jpg"
[25] "Female_013_h.jpg" "Female_019_h.jpg" "Female_012_v.jpg" "Female_015_v.jpg"
[29] "Male_016_v.jpg"   "Male_023_v.jpg"   "Male_003_v.jpg"   "Male_009_v.jpg"  
[33] "Male_020_v.jpg"   "Male_002_v.jpg"   "Male_001_v.jpg"   "Male_011_v.jpg"  
[37] "Female_006_v.jpg" "Female_001_h.jpg" "Male_025_v.jpg"   "Male_012_h.jpg"  
[41] "People_056_h.jpg" "People_146_h.jpg" "Faces_184_h.jpg"  "Faces_335_h.jpg" 
[45] "Faces_328_v.jpg"  "Faces_314_h.jpg"  "Faces_349_h.jpg"  "People_157_h.jpg"
[49] "People_132_h.jpg" "Faces_160_v.jpg"  "People_190_h.jpg" "People_169_h.jpg"
[53] "People_172_v.jpg" "People_187_h.jpg" "Faces_351_h.jpg"  "People_176_h.jpg"
[57] "People_116_h.jpg" "Faces_352_h.jpg"  "Faces_330_v.jpg"  "Faces_234_h.jpg" 

Visualization

dat <- napsero |>
  mutate(Selected = ifelse(ID %in% selected, TRUE, FALSE),
         label = ifelse(Selected, str_remove(ID, ".jpg"), NA),
         Type = ifelse(Category %in% c("Female", "Male"), "Erotic", "Non-erotic")) |>
  pivot_longer(cols = c("Men_Valence", "Men_Arousal", "Women_Valence", "Women_Arousal")) |>
  separate(name, into=c("Target", "Variable")) |>
  pivot_wider(names_from=Variable, values_from=value)

dat |>
  ggplot(aes(x=Valence, y=Arousal)) +
  geom_point(aes(shape=Selected, color=Category), size=6, alpha=0.8) +
  ggside::geom_ysidedensity(data=filter(dat, Selected), aes(color=Category), key_glyph = draw_key_blank) +
  ggside::geom_xsidedensity(data=filter(dat, Selected), aes(color=Category), key_glyph = draw_key_blank) +
  # ggrepel::geom_label_repel(aes(label = label)) +
  scale_shape_manual(values=c("TRUE"=20, "FALSE"=4)) +
  scale_color_manual(values = c(
    "Faces" = "#9E9E9E", "People" = "#795548",
    "Opposite-sex Couple"="#673AB7", "Male Couple"= "#3F51B5", "Female Couple" = "#9C27B0",
    "Female" = "#E91E63", "Male"= "#2196F3")) +
  guides(shape = guide_legend(override.aes = list(color="white"))) +
  facet_grid(~Target) +
  theme_abyss() +
  theme(ggside.panel.grid.major = element_blank(), 
        ggside.axis.text = element_blank(),
        ggside.axis.line = element_blank())

Final Selection

  • ID: picture category and number
  • V/H: vertical / horizontal
  • Av/Ap: avoidance - approach dimension
  • M: mean
  • SD: standard deviation
  • JPEG_size80:index of overall complexity
  • LABL: luminance in CIE Lab color space
  • LABA: the amount of red color CIE Lab color space
  • LABB: the amount of the green color CIE Lab color space
Code
selection <- df |> 
  filter(ID %in% selected)

write.csv(selection, "stimuli_data.csv", row.names=FALSE)
knitr::kable(selection)
ID Category Nr Orientation Women_Valence Women_Arousal Men_Valence Men_Arousal Width Height Luminance Contrast JPEG_size80 LABL LABA LABB Entropy Description Type
Male_001_v.jpg Male 1 v 5.70 4.55 4.25 3.70 1200 1600 146.9330 72.0716 265152 60.0397 4.5447 6.4490 7.7395 NA Erotic
Male_002_v.jpg Male 2 v 6.00 4.65 4.00 2.85 1200 1600 103.1037 65.8985 221793 42.7430 11.6582 -3.6073 7.7155 NA Erotic
Male_003_v.jpg Male 3 v 6.25 5.00 4.20 3.65 1200 1600 110.6571 49.4077 228056 46.1739 3.5967 7.3901 7.4926 NA Erotic
Male_005_v.jpg Male 5 v 5.50 4.40 3.20 4.75 1200 1600 45.0897 43.8873 170084 19.0900 11.4089 17.2027 6.7516 NA Erotic
Male_006_v.jpg Male 6 v 4.45 4.85 2.95 4.80 1200 1600 61.9878 40.1914 206880 26.1872 7.5483 10.2363 7.0614 NA Erotic
Male_007_h.jpg Male 7 h 4.95 4.10 3.30 4.05 1600 1200 119.5987 54.4775 469938 50.1922 3.1066 14.9059 7.6965 NA Erotic
Male_008_v.jpg Male 8 v 5.75 4.70 3.40 4.45 1200 1600 118.5186 61.1046 207491 49.8422 14.1516 16.1108 7.6090 NA Erotic
Male_009_v.jpg Male 9 v 6.15 4.85 4.45 2.85 1200 1600 100.9133 60.8704 271374 43.2111 13.4711 15.6762 7.4890 NA Erotic
Male_011_v.jpg Male 11 v 5.40 4.50 4.60 3.15 1200 1600 97.7019 66.7949 265717 40.2007 8.1808 11.1864 7.4400 NA Erotic
Male_012_h.jpg Male 12 h 5.25 3.75 3.55 2.95 1600 1200 188.8783 43.9723 331233 76.3947 4.1326 8.2885 7.2393 NA Erotic
Male_013_v.jpg Male 13 v 6.25 5.30 3.70 3.75 1200 1600 106.6658 86.7349 293448 44.0686 11.5375 24.8859 7.4514 NA Erotic
Male_014_v.jpg Male 14 v 6.05 5.00 3.60 3.95 1200 1600 180.0477 48.9227 151861 73.0604 3.9097 2.0474 7.2601 NA Erotic
Male_015_v.jpg Male 15 v 6.60 4.10 4.80 2.70 1200 1600 48.8844 76.4888 167601 20.0917 1.4845 8.8924 3.8868 NA Erotic
Male_016_v.jpg Male 16 v 5.85 5.45 3.50 3.60 1200 1600 119.1188 45.7527 216444 50.2338 12.4281 14.1233 7.4858 NA Erotic
Male_017_v.jpg Male 17 v 4.45 4.70 3.80 4.00 1200 1600 74.3417 56.3546 276400 31.5380 5.2385 7.6499 7.2051 NA Erotic
Male_020_v.jpg Male 20 v 6.25 4.80 3.95 3.25 1200 1600 190.5202 61.7412 157062 76.8132 4.0439 6.6188 7.1453 NA Erotic
Male_022_v.jpg Male 22 v 4.35 5.45 3.10 5.15 1200 1600 103.1871 52.5585 257785 43.1253 2.6258 12.3460 7.6091 NA Erotic
Male_023_v.jpg Male 23 v 6.60 5.15 5.05 3.00 1200 1600 120.5579 59.4542 201176 51.0533 12.5798 16.3443 7.7168 NA Erotic
Male_024_h.jpg Male 24 h 6.60 5.15 4.50 2.60 1600 1200 83.0978 44.1672 201056 35.3457 11.8279 13.8626 7.3268 NA Erotic
Male_025_v.jpg Male 25 v 4.50 3.65 3.45 3.55 1200 1600 69.5268 60.3570 267633 29.0652 2.7805 -0.9660 6.8769 NA Erotic
Female_001_h.jpg Female 1 h 5.40 3.35 6.90 5.30 1600 1200 134.0912 49.2428 249227 58.3600 27.1818 10.7039 7.2143 NA Erotic
Female_002_h.jpg Female 2 h 5.80 4.45 7.40 5.85 1600 1200 78.1128 57.3367 428384 32.6608 0.1224 13.5464 7.5265 NA Erotic
Female_003_v.jpg Female 3 v 5.40 4.85 7.00 5.10 1200 1600 175.3880 54.6216 118707 71.1543 7.0815 2.7069 7.4449 NA Erotic
Female_004_v.jpg Female 4 v 5.85 3.60 7.25 5.80 1200 1600 164.0815 74.0566 218444 66.2497 2.2245 -3.4638 6.8940 NA Erotic
Female_005_v.jpg Female 5 v 4.55 4.65 6.25 5.60 1200 1600 108.0089 70.3649 270082 44.8525 11.7249 10.9722 7.6863 NA Erotic
Female_006_v.jpg Female 6 v 5.10 3.25 7.10 5.70 1200 1600 154.6352 63.8650 186016 63.1318 2.4502 14.6292 7.7492 NA Erotic
Female_008_v.jpg Female 8 v 5.45 3.75 6.40 4.70 1200 1600 129.3198 72.8334 155798 52.8173 1.2756 4.4920 7.4938 NA Erotic
Female_009_h.jpg Female 9 h 5.10 4.70 6.90 5.55 1600 1200 101.9035 73.5278 176869 43.0143 11.3410 22.5140 6.6181 NA Erotic
Female_011_h.jpg Female 11 h 6.05 3.45 7.60 5.85 1600 1200 144.0886 56.5583 142606 59.6890 7.0771 8.9211 7.4167 NA Erotic
Female_012_v.jpg Female 12 v 5.70 4.15 7.05 5.15 1200 1600 140.7359 65.0532 207243 57.6698 4.5309 8.2501 7.8207 NA Erotic
Female_013_h.jpg Female 13 h 5.25 4.50 6.85 5.50 1600 1200 52.0128 68.6277 137297 21.5101 3.4277 3.1779 4.6639 NA Erotic
Female_015_v.jpg Female 15 v 6.40 4.05 7.30 5.55 1200 1600 159.0171 53.4020 171124 65.2389 8.0169 14.7847 7.5418 NA Erotic
Female_016_h.jpg Female 16 h 5.85 3.50 6.65 4.50 1600 1200 117.3297 37.7359 198286 52.7456 33.7434 20.4305 7.2035 NA Erotic
Female_017_v.jpg Female 17 v 5.30 4.70 7.20 5.75 1200 1600 72.0917 71.3798 261977 30.0066 11.5136 10.9459 7.3457 NA Erotic
Female_018_h.jpg Female 18 h 5.40 4.10 7.45 6.50 1600 1200 179.8980 38.1936 275330 73.3265 3.4570 12.5327 6.9748 NA Erotic
Female_019_h.jpg Female 19 h 5.10 4.15 6.40 5.00 1600 1200 110.5595 36.3153 254048 48.6266 23.4717 33.9492 7.1507 NA Erotic
Female_020_v.jpg Female 20 v 4.90 4.20 7.35 6.20 1200 1600 121.2187 36.7955 173444 50.7307 4.4367 4.5166 7.0191 NA Erotic
Female_021_h.jpg Female 21 h 4.30 4.45 7.10 6.30 1600 1200 152.4576 59.7605 237825 62.5048 8.8278 10.3350 7.3816 NA Erotic
Female_022_h.jpg Female 22 h 4.50 5.50 7.05 6.10 1200 1600 136.3236 63.7769 216160 56.5834 15.4662 4.3765 7.3921 NA Erotic
Female_023_h.jpg Female 23 h 5.85 4.55 6.85 5.40 1600 1200 52.3322 63.5300 214797 20.4158 1.8632 7.0814 6.0347 NA Erotic
Faces_160_v.jpg Faces 160 v 3.80 3.45 4.80 2.95 1200 1600 107.1774 85.7940 145663 43.7440 7.3603 10.0906 7.5611 Woman Non-erotic
Faces_184_h.jpg Faces 184 h 5.80 3.05 5.60 2.45 1600 1200 78.9580 62.6990 186474 33.5125 11.1965 23.2193 7.5512 Woman Non-erotic
Faces_234_h.jpg Faces 234 h 6.70 4.60 6.20 4.00 1600 1200 101.0152 67.2103 506847 41.9783 -3.0751 15.1934 7.8073 Dancing People Non-erotic
Faces_314_h.jpg Faces 314 h 5.75 2.90 5.25 3.30 1600 1200 146.4294 58.7845 255417 60.1728 -5.0633 -2.6592 7.6537 Man Skateboarding Non-erotic
Faces_328_v.jpg Faces 328 v 5.50 3.35 4.85 2.70 1200 1600 86.5058 57.6711 171031 35.5883 -0.3112 -1.7416 7.3988 Couple Non-erotic
Faces_330_v.jpg Faces 330 v 6.90 4.25 6.35 4.45 1200 1600 71.5767 41.7458 325837 30.0082 -0.4702 0.9357 7.2395 People Showering Non-erotic
Faces_335_h.jpg Faces 335 h 6.80 3.35 5.55 2.50 1600 1200 95.0537 76.9787 194229 38.8455 0.9408 3.6752 7.6725 Couple Non-erotic
Faces_349_h.jpg Faces 349 h 6.70 3.45 5.65 2.75 1600 1200 74.8055 59.0963 215553 30.7027 0.6970 0.5981 7.5596 People Smiling Non-erotic
Faces_351_h.jpg Faces 351 h 7.05 4.65 7.10 4.50 1600 1200 86.1214 73.7229 170646 35.4262 2.8311 6.4751 7.3716 Elderly Women Non-erotic
Faces_352_h.jpg Faces 352 h 7.00 4.80 6.70 4.15 1600 1200 93.9210 55.2244 293080 39.6994 1.4487 1.8242 7.6593 People In The Swimming Pool Non-erotic
People_056_h.jpg People 56 h 5.60 2.50 5.15 2.15 1600 1200 92.0716 68.5276 159859 37.8293 -0.4270 2.1235 7.7565 Man Non-erotic
People_116_h.jpg People 116 h 7.60 5.15 6.55 3.95 1600 1200 87.9649 75.2758 324300 36.0174 -0.8448 -1.9760 7.6169 Beach Non-erotic
People_132_h.jpg People 132 h 4.50 2.85 4.90 3.50 1600 1200 112.4219 57.9992 211838 46.8945 -2.9026 11.8506 7.5629 Football Players Non-erotic
People_146_h.jpg People 146 h 5.20 3.00 4.65 2.35 1600 1200 118.2220 56.7789 343985 49.0548 -1.4558 4.2640 7.6988 Garbage Collectors Non-erotic
People_157_h.jpg People 157 h 5.35 3.15 5.25 3.05 1600 1200 93.4660 67.7615 400343 39.5283 4.2241 5.4510 7.7856 Elderly Woman Non-erotic
People_169_h.jpg People 169 h 7.85 5.40 6.60 4.15 1600 1200 135.8424 81.4202 466618 54.9775 0.3259 3.9071 7.7471 Elderly Couple Non-erotic
People_172_v.jpg People 172 v 7.70 5.15 7.15 4.35 1200 1600 119.0166 56.3597 359216 49.9957 -8.8494 0.6884 7.6186 Man Swinging Non-erotic
People_176_h.jpg People 176 h 7.45 4.70 7.10 4.40 1600 1200 184.7980 69.2438 271588 74.0151 0.2560 0.0810 6.6467 Father And Child Non-erotic
People_187_h.jpg People 187 h 7.35 4.75 6.90 4.55 1600 1200 118.9785 72.6593 445830 48.6317 -1.5361 3.8181 7.9149 Woman Jumping Non-erotic
People_190_h.jpg People 190 h 7.65 5.05 7.60 5.00 1600 1200 98.4291 55.7373 385125 43.0061 -0.7026 -13.3812 7.6983 Diver Non-erotic
Code
json <- selection |> 
  select(stimulus=ID, Category, Orientation) |> 
  jsonlite::toJSON()
  
write(paste("var stimuli_list = ", json), "stimuli_list.js")
Code
path_ero <- "C:/Dropbox/RECHERCHE/docs/Stimuli/NAPS/NAPS_ERO/"
path_naps <- "C:/Dropbox/RECHERCHE/docs/Stimuli/NAPS/NAPS/"

# Remove all current files
unlink("../stimuli/*")

# Copy each file
for(file in selected) {
  if(str_detect(file, "Male|Female")) {
    file.copy(paste0(path_ero, file), "../stimuli/")
  } else {
    file.copy(paste0(path_naps, file), "../stimuli/")
  }
}